All Downloads are FREE. Search and download functionalities are using the official Maven repository.

skadistats.clarity.wire.common.proto.DotaUserMessages Maven / Gradle / Ivy

Go to download

Clarity is an open source replay parser for Dota 2 and CSGO 1 and 2 written in Java. This JAR contains the protobuf classes for clarity.

There is a newer version: 5.3
Show newest version
// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: dota_usermessages.proto

package skadistats.clarity.wire.common.proto;

public final class DotaUserMessages {
  private DotaUserMessages() {}
  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistry registry) {
  }
  /**
   * Protobuf enum {@code DOTA_COMBATLOG_TYPES}
   */
  public enum DOTA_COMBATLOG_TYPES
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * DOTA_COMBATLOG_INVALID = -1;
     */
    DOTA_COMBATLOG_INVALID(0, -1),
    /**
     * DOTA_COMBATLOG_DAMAGE = 0;
     */
    DOTA_COMBATLOG_DAMAGE(1, 0),
    /**
     * DOTA_COMBATLOG_HEAL = 1;
     */
    DOTA_COMBATLOG_HEAL(2, 1),
    /**
     * DOTA_COMBATLOG_MODIFIER_ADD = 2;
     */
    DOTA_COMBATLOG_MODIFIER_ADD(3, 2),
    /**
     * DOTA_COMBATLOG_MODIFIER_REMOVE = 3;
     */
    DOTA_COMBATLOG_MODIFIER_REMOVE(4, 3),
    /**
     * DOTA_COMBATLOG_DEATH = 4;
     */
    DOTA_COMBATLOG_DEATH(5, 4),
    /**
     * DOTA_COMBATLOG_ABILITY = 5;
     */
    DOTA_COMBATLOG_ABILITY(6, 5),
    /**
     * DOTA_COMBATLOG_ITEM = 6;
     */
    DOTA_COMBATLOG_ITEM(7, 6),
    /**
     * DOTA_COMBATLOG_LOCATION = 7;
     */
    DOTA_COMBATLOG_LOCATION(8, 7),
    /**
     * DOTA_COMBATLOG_GOLD = 8;
     */
    DOTA_COMBATLOG_GOLD(9, 8),
    /**
     * DOTA_COMBATLOG_GAME_STATE = 9;
     */
    DOTA_COMBATLOG_GAME_STATE(10, 9),
    /**
     * DOTA_COMBATLOG_XP = 10;
     */
    DOTA_COMBATLOG_XP(11, 10),
    /**
     * DOTA_COMBATLOG_PURCHASE = 11;
     */
    DOTA_COMBATLOG_PURCHASE(12, 11),
    /**
     * DOTA_COMBATLOG_BUYBACK = 12;
     */
    DOTA_COMBATLOG_BUYBACK(13, 12),
    /**
     * DOTA_COMBATLOG_ABILITY_TRIGGER = 13;
     */
    DOTA_COMBATLOG_ABILITY_TRIGGER(14, 13),
    /**
     * DOTA_COMBATLOG_PLAYERSTATS = 14;
     */
    DOTA_COMBATLOG_PLAYERSTATS(15, 14),
    /**
     * DOTA_COMBATLOG_MULTIKILL = 15;
     */
    DOTA_COMBATLOG_MULTIKILL(16, 15),
    /**
     * DOTA_COMBATLOG_KILLSTREAK = 16;
     */
    DOTA_COMBATLOG_KILLSTREAK(17, 16),
    /**
     * DOTA_COMBATLOG_TEAM_BUILDING_KILL = 17;
     */
    DOTA_COMBATLOG_TEAM_BUILDING_KILL(18, 17),
    /**
     * DOTA_COMBATLOG_FIRST_BLOOD = 18;
     */
    DOTA_COMBATLOG_FIRST_BLOOD(19, 18),
    /**
     * DOTA_COMBATLOG_MODIFIER_STACK_EVENT = 19;
     */
    DOTA_COMBATLOG_MODIFIER_STACK_EVENT(20, 19),
    /**
     * DOTA_COMBATLOG_NEUTRAL_CAMP_STACK = 20;
     */
    DOTA_COMBATLOG_NEUTRAL_CAMP_STACK(21, 20),
    /**
     * DOTA_COMBATLOG_PICKUP_RUNE = 21;
     */
    DOTA_COMBATLOG_PICKUP_RUNE(22, 21),
    /**
     * DOTA_COMBATLOG_REVEALED_INVISIBLE = 22;
     */
    DOTA_COMBATLOG_REVEALED_INVISIBLE(23, 22),
    /**
     * DOTA_COMBATLOG_HERO_SAVED = 23;
     */
    DOTA_COMBATLOG_HERO_SAVED(24, 23),
    /**
     * DOTA_COMBATLOG_MANA_RESTORED = 24;
     */
    DOTA_COMBATLOG_MANA_RESTORED(25, 24),
    /**
     * DOTA_COMBATLOG_HERO_LEVELUP = 25;
     */
    DOTA_COMBATLOG_HERO_LEVELUP(26, 25),
    /**
     * DOTA_COMBATLOG_BOTTLE_HEAL_ALLY = 26;
     */
    DOTA_COMBATLOG_BOTTLE_HEAL_ALLY(27, 26),
    /**
     * DOTA_COMBATLOG_ENDGAME_STATS = 27;
     */
    DOTA_COMBATLOG_ENDGAME_STATS(28, 27),
    /**
     * DOTA_COMBATLOG_INTERRUPT_CHANNEL = 28;
     */
    DOTA_COMBATLOG_INTERRUPT_CHANNEL(29, 28),
    /**
     * DOTA_COMBATLOG_ALLIED_GOLD = 29;
     */
    DOTA_COMBATLOG_ALLIED_GOLD(30, 29),
    /**
     * DOTA_COMBATLOG_AEGIS_TAKEN = 30;
     */
    DOTA_COMBATLOG_AEGIS_TAKEN(31, 30),
    /**
     * DOTA_COMBATLOG_MANA_DAMAGE = 31;
     */
    DOTA_COMBATLOG_MANA_DAMAGE(32, 31),
    /**
     * DOTA_COMBATLOG_PHYSICAL_DAMAGE_PREVENTED = 32;
     */
    DOTA_COMBATLOG_PHYSICAL_DAMAGE_PREVENTED(33, 32),
    /**
     * DOTA_COMBATLOG_UNIT_SUMMONED = 33;
     */
    DOTA_COMBATLOG_UNIT_SUMMONED(34, 33),
    /**
     * DOTA_COMBATLOG_ATTACK_EVADE = 34;
     */
    DOTA_COMBATLOG_ATTACK_EVADE(35, 34),
    /**
     * DOTA_COMBATLOG_TREE_CUT = 35;
     */
    DOTA_COMBATLOG_TREE_CUT(36, 35),
    /**
     * DOTA_COMBATLOG_SUCCESSFUL_SCAN = 36;
     */
    DOTA_COMBATLOG_SUCCESSFUL_SCAN(37, 36),
    /**
     * DOTA_COMBATLOG_END_KILLSTREAK = 37;
     */
    DOTA_COMBATLOG_END_KILLSTREAK(38, 37),
    /**
     * DOTA_COMBATLOG_BLOODSTONE_CHARGE = 38;
     */
    DOTA_COMBATLOG_BLOODSTONE_CHARGE(39, 38),
    /**
     * DOTA_COMBATLOG_CRITICAL_DAMAGE = 39;
     */
    DOTA_COMBATLOG_CRITICAL_DAMAGE(40, 39),
    /**
     * DOTA_COMBATLOG_SPELL_ABSORB = 40;
     */
    DOTA_COMBATLOG_SPELL_ABSORB(41, 40),
    /**
     * DOTA_COMBATLOG_UNIT_TELEPORTED = 41;
     */
    DOTA_COMBATLOG_UNIT_TELEPORTED(42, 41),
    /**
     * DOTA_COMBATLOG_KILL_EATER_EVENT = 42;
     */
    DOTA_COMBATLOG_KILL_EATER_EVENT(43, 42),
    ;

    /**
     * DOTA_COMBATLOG_INVALID = -1;
     */
    public static final int DOTA_COMBATLOG_INVALID_VALUE = -1;
    /**
     * DOTA_COMBATLOG_DAMAGE = 0;
     */
    public static final int DOTA_COMBATLOG_DAMAGE_VALUE = 0;
    /**
     * DOTA_COMBATLOG_HEAL = 1;
     */
    public static final int DOTA_COMBATLOG_HEAL_VALUE = 1;
    /**
     * DOTA_COMBATLOG_MODIFIER_ADD = 2;
     */
    public static final int DOTA_COMBATLOG_MODIFIER_ADD_VALUE = 2;
    /**
     * DOTA_COMBATLOG_MODIFIER_REMOVE = 3;
     */
    public static final int DOTA_COMBATLOG_MODIFIER_REMOVE_VALUE = 3;
    /**
     * DOTA_COMBATLOG_DEATH = 4;
     */
    public static final int DOTA_COMBATLOG_DEATH_VALUE = 4;
    /**
     * DOTA_COMBATLOG_ABILITY = 5;
     */
    public static final int DOTA_COMBATLOG_ABILITY_VALUE = 5;
    /**
     * DOTA_COMBATLOG_ITEM = 6;
     */
    public static final int DOTA_COMBATLOG_ITEM_VALUE = 6;
    /**
     * DOTA_COMBATLOG_LOCATION = 7;
     */
    public static final int DOTA_COMBATLOG_LOCATION_VALUE = 7;
    /**
     * DOTA_COMBATLOG_GOLD = 8;
     */
    public static final int DOTA_COMBATLOG_GOLD_VALUE = 8;
    /**
     * DOTA_COMBATLOG_GAME_STATE = 9;
     */
    public static final int DOTA_COMBATLOG_GAME_STATE_VALUE = 9;
    /**
     * DOTA_COMBATLOG_XP = 10;
     */
    public static final int DOTA_COMBATLOG_XP_VALUE = 10;
    /**
     * DOTA_COMBATLOG_PURCHASE = 11;
     */
    public static final int DOTA_COMBATLOG_PURCHASE_VALUE = 11;
    /**
     * DOTA_COMBATLOG_BUYBACK = 12;
     */
    public static final int DOTA_COMBATLOG_BUYBACK_VALUE = 12;
    /**
     * DOTA_COMBATLOG_ABILITY_TRIGGER = 13;
     */
    public static final int DOTA_COMBATLOG_ABILITY_TRIGGER_VALUE = 13;
    /**
     * DOTA_COMBATLOG_PLAYERSTATS = 14;
     */
    public static final int DOTA_COMBATLOG_PLAYERSTATS_VALUE = 14;
    /**
     * DOTA_COMBATLOG_MULTIKILL = 15;
     */
    public static final int DOTA_COMBATLOG_MULTIKILL_VALUE = 15;
    /**
     * DOTA_COMBATLOG_KILLSTREAK = 16;
     */
    public static final int DOTA_COMBATLOG_KILLSTREAK_VALUE = 16;
    /**
     * DOTA_COMBATLOG_TEAM_BUILDING_KILL = 17;
     */
    public static final int DOTA_COMBATLOG_TEAM_BUILDING_KILL_VALUE = 17;
    /**
     * DOTA_COMBATLOG_FIRST_BLOOD = 18;
     */
    public static final int DOTA_COMBATLOG_FIRST_BLOOD_VALUE = 18;
    /**
     * DOTA_COMBATLOG_MODIFIER_STACK_EVENT = 19;
     */
    public static final int DOTA_COMBATLOG_MODIFIER_STACK_EVENT_VALUE = 19;
    /**
     * DOTA_COMBATLOG_NEUTRAL_CAMP_STACK = 20;
     */
    public static final int DOTA_COMBATLOG_NEUTRAL_CAMP_STACK_VALUE = 20;
    /**
     * DOTA_COMBATLOG_PICKUP_RUNE = 21;
     */
    public static final int DOTA_COMBATLOG_PICKUP_RUNE_VALUE = 21;
    /**
     * DOTA_COMBATLOG_REVEALED_INVISIBLE = 22;
     */
    public static final int DOTA_COMBATLOG_REVEALED_INVISIBLE_VALUE = 22;
    /**
     * DOTA_COMBATLOG_HERO_SAVED = 23;
     */
    public static final int DOTA_COMBATLOG_HERO_SAVED_VALUE = 23;
    /**
     * DOTA_COMBATLOG_MANA_RESTORED = 24;
     */
    public static final int DOTA_COMBATLOG_MANA_RESTORED_VALUE = 24;
    /**
     * DOTA_COMBATLOG_HERO_LEVELUP = 25;
     */
    public static final int DOTA_COMBATLOG_HERO_LEVELUP_VALUE = 25;
    /**
     * DOTA_COMBATLOG_BOTTLE_HEAL_ALLY = 26;
     */
    public static final int DOTA_COMBATLOG_BOTTLE_HEAL_ALLY_VALUE = 26;
    /**
     * DOTA_COMBATLOG_ENDGAME_STATS = 27;
     */
    public static final int DOTA_COMBATLOG_ENDGAME_STATS_VALUE = 27;
    /**
     * DOTA_COMBATLOG_INTERRUPT_CHANNEL = 28;
     */
    public static final int DOTA_COMBATLOG_INTERRUPT_CHANNEL_VALUE = 28;
    /**
     * DOTA_COMBATLOG_ALLIED_GOLD = 29;
     */
    public static final int DOTA_COMBATLOG_ALLIED_GOLD_VALUE = 29;
    /**
     * DOTA_COMBATLOG_AEGIS_TAKEN = 30;
     */
    public static final int DOTA_COMBATLOG_AEGIS_TAKEN_VALUE = 30;
    /**
     * DOTA_COMBATLOG_MANA_DAMAGE = 31;
     */
    public static final int DOTA_COMBATLOG_MANA_DAMAGE_VALUE = 31;
    /**
     * DOTA_COMBATLOG_PHYSICAL_DAMAGE_PREVENTED = 32;
     */
    public static final int DOTA_COMBATLOG_PHYSICAL_DAMAGE_PREVENTED_VALUE = 32;
    /**
     * DOTA_COMBATLOG_UNIT_SUMMONED = 33;
     */
    public static final int DOTA_COMBATLOG_UNIT_SUMMONED_VALUE = 33;
    /**
     * DOTA_COMBATLOG_ATTACK_EVADE = 34;
     */
    public static final int DOTA_COMBATLOG_ATTACK_EVADE_VALUE = 34;
    /**
     * DOTA_COMBATLOG_TREE_CUT = 35;
     */
    public static final int DOTA_COMBATLOG_TREE_CUT_VALUE = 35;
    /**
     * DOTA_COMBATLOG_SUCCESSFUL_SCAN = 36;
     */
    public static final int DOTA_COMBATLOG_SUCCESSFUL_SCAN_VALUE = 36;
    /**
     * DOTA_COMBATLOG_END_KILLSTREAK = 37;
     */
    public static final int DOTA_COMBATLOG_END_KILLSTREAK_VALUE = 37;
    /**
     * DOTA_COMBATLOG_BLOODSTONE_CHARGE = 38;
     */
    public static final int DOTA_COMBATLOG_BLOODSTONE_CHARGE_VALUE = 38;
    /**
     * DOTA_COMBATLOG_CRITICAL_DAMAGE = 39;
     */
    public static final int DOTA_COMBATLOG_CRITICAL_DAMAGE_VALUE = 39;
    /**
     * DOTA_COMBATLOG_SPELL_ABSORB = 40;
     */
    public static final int DOTA_COMBATLOG_SPELL_ABSORB_VALUE = 40;
    /**
     * DOTA_COMBATLOG_UNIT_TELEPORTED = 41;
     */
    public static final int DOTA_COMBATLOG_UNIT_TELEPORTED_VALUE = 41;
    /**
     * DOTA_COMBATLOG_KILL_EATER_EVENT = 42;
     */
    public static final int DOTA_COMBATLOG_KILL_EATER_EVENT_VALUE = 42;


    public final int getNumber() { return value; }

    public static DOTA_COMBATLOG_TYPES valueOf(int value) {
      switch (value) {
        case -1: return DOTA_COMBATLOG_INVALID;
        case 0: return DOTA_COMBATLOG_DAMAGE;
        case 1: return DOTA_COMBATLOG_HEAL;
        case 2: return DOTA_COMBATLOG_MODIFIER_ADD;
        case 3: return DOTA_COMBATLOG_MODIFIER_REMOVE;
        case 4: return DOTA_COMBATLOG_DEATH;
        case 5: return DOTA_COMBATLOG_ABILITY;
        case 6: return DOTA_COMBATLOG_ITEM;
        case 7: return DOTA_COMBATLOG_LOCATION;
        case 8: return DOTA_COMBATLOG_GOLD;
        case 9: return DOTA_COMBATLOG_GAME_STATE;
        case 10: return DOTA_COMBATLOG_XP;
        case 11: return DOTA_COMBATLOG_PURCHASE;
        case 12: return DOTA_COMBATLOG_BUYBACK;
        case 13: return DOTA_COMBATLOG_ABILITY_TRIGGER;
        case 14: return DOTA_COMBATLOG_PLAYERSTATS;
        case 15: return DOTA_COMBATLOG_MULTIKILL;
        case 16: return DOTA_COMBATLOG_KILLSTREAK;
        case 17: return DOTA_COMBATLOG_TEAM_BUILDING_KILL;
        case 18: return DOTA_COMBATLOG_FIRST_BLOOD;
        case 19: return DOTA_COMBATLOG_MODIFIER_STACK_EVENT;
        case 20: return DOTA_COMBATLOG_NEUTRAL_CAMP_STACK;
        case 21: return DOTA_COMBATLOG_PICKUP_RUNE;
        case 22: return DOTA_COMBATLOG_REVEALED_INVISIBLE;
        case 23: return DOTA_COMBATLOG_HERO_SAVED;
        case 24: return DOTA_COMBATLOG_MANA_RESTORED;
        case 25: return DOTA_COMBATLOG_HERO_LEVELUP;
        case 26: return DOTA_COMBATLOG_BOTTLE_HEAL_ALLY;
        case 27: return DOTA_COMBATLOG_ENDGAME_STATS;
        case 28: return DOTA_COMBATLOG_INTERRUPT_CHANNEL;
        case 29: return DOTA_COMBATLOG_ALLIED_GOLD;
        case 30: return DOTA_COMBATLOG_AEGIS_TAKEN;
        case 31: return DOTA_COMBATLOG_MANA_DAMAGE;
        case 32: return DOTA_COMBATLOG_PHYSICAL_DAMAGE_PREVENTED;
        case 33: return DOTA_COMBATLOG_UNIT_SUMMONED;
        case 34: return DOTA_COMBATLOG_ATTACK_EVADE;
        case 35: return DOTA_COMBATLOG_TREE_CUT;
        case 36: return DOTA_COMBATLOG_SUCCESSFUL_SCAN;
        case 37: return DOTA_COMBATLOG_END_KILLSTREAK;
        case 38: return DOTA_COMBATLOG_BLOODSTONE_CHARGE;
        case 39: return DOTA_COMBATLOG_CRITICAL_DAMAGE;
        case 40: return DOTA_COMBATLOG_SPELL_ABSORB;
        case 41: return DOTA_COMBATLOG_UNIT_TELEPORTED;
        case 42: return DOTA_COMBATLOG_KILL_EATER_EVENT;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap
        internalGetValueMap() {
      return internalValueMap;
    }
    private static com.google.protobuf.Internal.EnumLiteMap
        internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap() {
            public DOTA_COMBATLOG_TYPES findValueByNumber(int number) {
              return DOTA_COMBATLOG_TYPES.valueOf(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      return getDescriptor().getValues().get(index);
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.getDescriptor().getEnumTypes().get(0);
    }

    private static final DOTA_COMBATLOG_TYPES[] VALUES = values();

    public static DOTA_COMBATLOG_TYPES valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      return VALUES[desc.getIndex()];
    }

    private final int index;
    private final int value;

    private DOTA_COMBATLOG_TYPES(int index, int value) {
      this.index = index;
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:DOTA_COMBATLOG_TYPES)
  }

  /**
   * Protobuf enum {@code DOTA_CHAT_MESSAGE}
   */
  public enum DOTA_CHAT_MESSAGE
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * CHAT_MESSAGE_INVALID = -1;
     */
    CHAT_MESSAGE_INVALID(0, -1),
    /**
     * CHAT_MESSAGE_HERO_KILL = 0;
     */
    CHAT_MESSAGE_HERO_KILL(1, 0),
    /**
     * CHAT_MESSAGE_HERO_DENY = 1;
     */
    CHAT_MESSAGE_HERO_DENY(2, 1),
    /**
     * CHAT_MESSAGE_BARRACKS_KILL = 2;
     */
    CHAT_MESSAGE_BARRACKS_KILL(3, 2),
    /**
     * CHAT_MESSAGE_TOWER_KILL = 3;
     */
    CHAT_MESSAGE_TOWER_KILL(4, 3),
    /**
     * CHAT_MESSAGE_TOWER_DENY = 4;
     */
    CHAT_MESSAGE_TOWER_DENY(5, 4),
    /**
     * CHAT_MESSAGE_FIRSTBLOOD = 5;
     */
    CHAT_MESSAGE_FIRSTBLOOD(6, 5),
    /**
     * CHAT_MESSAGE_STREAK_KILL = 6;
     */
    CHAT_MESSAGE_STREAK_KILL(7, 6),
    /**
     * CHAT_MESSAGE_BUYBACK = 7;
     */
    CHAT_MESSAGE_BUYBACK(8, 7),
    /**
     * CHAT_MESSAGE_AEGIS = 8;
     */
    CHAT_MESSAGE_AEGIS(9, 8),
    /**
     * CHAT_MESSAGE_ROSHAN_KILL = 9;
     */
    CHAT_MESSAGE_ROSHAN_KILL(10, 9),
    /**
     * CHAT_MESSAGE_COURIER_LOST = 10;
     */
    CHAT_MESSAGE_COURIER_LOST(11, 10),
    /**
     * CHAT_MESSAGE_COURIER_RESPAWNED = 11;
     */
    CHAT_MESSAGE_COURIER_RESPAWNED(12, 11),
    /**
     * CHAT_MESSAGE_GLYPH_USED = 12;
     */
    CHAT_MESSAGE_GLYPH_USED(13, 12),
    /**
     * CHAT_MESSAGE_ITEM_PURCHASE = 13;
     */
    CHAT_MESSAGE_ITEM_PURCHASE(14, 13),
    /**
     * CHAT_MESSAGE_CONNECT = 14;
     */
    CHAT_MESSAGE_CONNECT(15, 14),
    /**
     * CHAT_MESSAGE_DISCONNECT = 15;
     */
    CHAT_MESSAGE_DISCONNECT(16, 15),
    /**
     * CHAT_MESSAGE_DISCONNECT_WAIT_FOR_RECONNECT = 16;
     */
    CHAT_MESSAGE_DISCONNECT_WAIT_FOR_RECONNECT(17, 16),
    /**
     * CHAT_MESSAGE_DISCONNECT_TIME_REMAINING = 17;
     */
    CHAT_MESSAGE_DISCONNECT_TIME_REMAINING(18, 17),
    /**
     * CHAT_MESSAGE_DISCONNECT_TIME_REMAINING_PLURAL = 18;
     */
    CHAT_MESSAGE_DISCONNECT_TIME_REMAINING_PLURAL(19, 18),
    /**
     * CHAT_MESSAGE_RECONNECT = 19;
     */
    CHAT_MESSAGE_RECONNECT(20, 19),
    /**
     * CHAT_MESSAGE_PLAYER_LEFT = 20;
     */
    CHAT_MESSAGE_PLAYER_LEFT(21, 20),
    /**
     * CHAT_MESSAGE_SAFE_TO_LEAVE = 21;
     */
    CHAT_MESSAGE_SAFE_TO_LEAVE(22, 21),
    /**
     * CHAT_MESSAGE_RUNE_PICKUP = 22;
     */
    CHAT_MESSAGE_RUNE_PICKUP(23, 22),
    /**
     * CHAT_MESSAGE_RUNE_BOTTLE = 23;
     */
    CHAT_MESSAGE_RUNE_BOTTLE(24, 23),
    /**
     * CHAT_MESSAGE_INTHEBAG = 24;
     */
    CHAT_MESSAGE_INTHEBAG(25, 24),
    /**
     * CHAT_MESSAGE_SECRETSHOP = 25;
     */
    CHAT_MESSAGE_SECRETSHOP(26, 25),
    /**
     * CHAT_MESSAGE_ITEM_AUTOPURCHASED = 26;
     */
    CHAT_MESSAGE_ITEM_AUTOPURCHASED(27, 26),
    /**
     * CHAT_MESSAGE_ITEMS_COMBINED = 27;
     */
    CHAT_MESSAGE_ITEMS_COMBINED(28, 27),
    /**
     * CHAT_MESSAGE_SUPER_CREEPS = 28;
     */
    CHAT_MESSAGE_SUPER_CREEPS(29, 28),
    /**
     * CHAT_MESSAGE_CANT_USE_ACTION_ITEM = 29;
     */
    CHAT_MESSAGE_CANT_USE_ACTION_ITEM(30, 29),
    /**
     * CHAT_MESSAGE_CHARGES_EXHAUSTED = 30;
     */
    CHAT_MESSAGE_CHARGES_EXHAUSTED(31, 30),
    /**
     * CHAT_MESSAGE_CANTPAUSE = 31;
     */
    CHAT_MESSAGE_CANTPAUSE(32, 31),
    /**
     * CHAT_MESSAGE_NOPAUSESLEFT = 32;
     */
    CHAT_MESSAGE_NOPAUSESLEFT(33, 32),
    /**
     * CHAT_MESSAGE_CANTPAUSEYET = 33;
     */
    CHAT_MESSAGE_CANTPAUSEYET(34, 33),
    /**
     * CHAT_MESSAGE_PAUSED = 34;
     */
    CHAT_MESSAGE_PAUSED(35, 34),
    /**
     * CHAT_MESSAGE_UNPAUSE_COUNTDOWN = 35;
     */
    CHAT_MESSAGE_UNPAUSE_COUNTDOWN(36, 35),
    /**
     * CHAT_MESSAGE_UNPAUSED = 36;
     */
    CHAT_MESSAGE_UNPAUSED(37, 36),
    /**
     * CHAT_MESSAGE_AUTO_UNPAUSED = 37;
     */
    CHAT_MESSAGE_AUTO_UNPAUSED(38, 37),
    /**
     * CHAT_MESSAGE_YOUPAUSED = 38;
     */
    CHAT_MESSAGE_YOUPAUSED(39, 38),
    /**
     * CHAT_MESSAGE_CANTUNPAUSETEAM = 39;
     */
    CHAT_MESSAGE_CANTUNPAUSETEAM(40, 39),
    /**
     * CHAT_MESSAGE_VOICE_TEXT_BANNED = 41;
     */
    CHAT_MESSAGE_VOICE_TEXT_BANNED(41, 41),
    /**
     * CHAT_MESSAGE_SPECTATORS_WATCHING_THIS_GAME = 42;
     */
    CHAT_MESSAGE_SPECTATORS_WATCHING_THIS_GAME(42, 42),
    /**
     * CHAT_MESSAGE_REPORT_REMINDER = 43;
     */
    CHAT_MESSAGE_REPORT_REMINDER(43, 43),
    /**
     * CHAT_MESSAGE_ECON_ITEM = 44;
     */
    CHAT_MESSAGE_ECON_ITEM(44, 44),
    /**
     * CHAT_MESSAGE_TAUNT = 45;
     */
    CHAT_MESSAGE_TAUNT(45, 45),
    /**
     * CHAT_MESSAGE_RANDOM = 46;
     */
    CHAT_MESSAGE_RANDOM(46, 46),
    /**
     * CHAT_MESSAGE_RD_TURN = 47;
     */
    CHAT_MESSAGE_RD_TURN(47, 47),
    /**
     * CHAT_MESSAGE_DROP_RATE_BONUS = 49;
     */
    CHAT_MESSAGE_DROP_RATE_BONUS(48, 49),
    /**
     * CHAT_MESSAGE_NO_BATTLE_POINTS = 50;
     */
    CHAT_MESSAGE_NO_BATTLE_POINTS(49, 50),
    /**
     * CHAT_MESSAGE_DENIED_AEGIS = 51;
     */
    CHAT_MESSAGE_DENIED_AEGIS(50, 51),
    /**
     * CHAT_MESSAGE_INFORMATIONAL = 52;
     */
    CHAT_MESSAGE_INFORMATIONAL(51, 52),
    /**
     * CHAT_MESSAGE_AEGIS_STOLEN = 53;
     */
    CHAT_MESSAGE_AEGIS_STOLEN(52, 53),
    /**
     * CHAT_MESSAGE_ROSHAN_CANDY = 54;
     */
    CHAT_MESSAGE_ROSHAN_CANDY(53, 54),
    /**
     * CHAT_MESSAGE_ITEM_GIFTED = 55;
     */
    CHAT_MESSAGE_ITEM_GIFTED(54, 55),
    /**
     * CHAT_MESSAGE_HERO_KILL_WITH_GREEVIL = 56;
     */
    CHAT_MESSAGE_HERO_KILL_WITH_GREEVIL(55, 56),
    /**
     * CHAT_MESSAGE_HOLDOUT_TOWER_DESTROYED = 57;
     */
    CHAT_MESSAGE_HOLDOUT_TOWER_DESTROYED(56, 57),
    /**
     * CHAT_MESSAGE_HOLDOUT_WALL_DESTROYED = 58;
     */
    CHAT_MESSAGE_HOLDOUT_WALL_DESTROYED(57, 58),
    /**
     * CHAT_MESSAGE_HOLDOUT_WALL_FINISHED = 59;
     */
    CHAT_MESSAGE_HOLDOUT_WALL_FINISHED(58, 59),
    /**
     * CHAT_MESSAGE_PLAYER_LEFT_LIMITED_HERO = 62;
     */
    CHAT_MESSAGE_PLAYER_LEFT_LIMITED_HERO(59, 62),
    /**
     * CHAT_MESSAGE_ABANDON_LIMITED_HERO_EXPLANATION = 63;
     */
    CHAT_MESSAGE_ABANDON_LIMITED_HERO_EXPLANATION(60, 63),
    /**
     * CHAT_MESSAGE_DISCONNECT_LIMITED_HERO = 64;
     */
    CHAT_MESSAGE_DISCONNECT_LIMITED_HERO(61, 64),
    /**
     * CHAT_MESSAGE_LOW_PRIORITY_COMPLETED_EXPLANATION = 65;
     */
    CHAT_MESSAGE_LOW_PRIORITY_COMPLETED_EXPLANATION(62, 65),
    /**
     * CHAT_MESSAGE_RECRUITMENT_DROP_RATE_BONUS = 66;
     */
    CHAT_MESSAGE_RECRUITMENT_DROP_RATE_BONUS(63, 66),
    /**
     * CHAT_MESSAGE_FROSTIVUS_SHINING_BOOSTER_ACTIVE = 67;
     */
    CHAT_MESSAGE_FROSTIVUS_SHINING_BOOSTER_ACTIVE(64, 67),
    /**
     * CHAT_MESSAGE_PLAYER_LEFT_AFK = 73;
     */
    CHAT_MESSAGE_PLAYER_LEFT_AFK(65, 73),
    /**
     * CHAT_MESSAGE_PLAYER_LEFT_DISCONNECTED_TOO_LONG = 74;
     */
    CHAT_MESSAGE_PLAYER_LEFT_DISCONNECTED_TOO_LONG(66, 74),
    /**
     * CHAT_MESSAGE_PLAYER_ABANDONED = 75;
     */
    CHAT_MESSAGE_PLAYER_ABANDONED(67, 75),
    /**
     * CHAT_MESSAGE_PLAYER_ABANDONED_AFK = 76;
     */
    CHAT_MESSAGE_PLAYER_ABANDONED_AFK(68, 76),
    /**
     * CHAT_MESSAGE_PLAYER_ABANDONED_DISCONNECTED_TOO_LONG = 77;
     */
    CHAT_MESSAGE_PLAYER_ABANDONED_DISCONNECTED_TOO_LONG(69, 77),
    /**
     * CHAT_MESSAGE_WILL_NOT_BE_SCORED = 78;
     */
    CHAT_MESSAGE_WILL_NOT_BE_SCORED(70, 78),
    /**
     * CHAT_MESSAGE_WILL_NOT_BE_SCORED_RANKED = 79;
     */
    CHAT_MESSAGE_WILL_NOT_BE_SCORED_RANKED(71, 79),
    /**
     * CHAT_MESSAGE_WILL_NOT_BE_SCORED_NETWORK = 80;
     */
    CHAT_MESSAGE_WILL_NOT_BE_SCORED_NETWORK(72, 80),
    /**
     * CHAT_MESSAGE_WILL_NOT_BE_SCORED_NETWORK_RANKED = 81;
     */
    CHAT_MESSAGE_WILL_NOT_BE_SCORED_NETWORK_RANKED(73, 81),
    /**
     * CHAT_MESSAGE_CAN_QUIT_WITHOUT_ABANDON = 82;
     */
    CHAT_MESSAGE_CAN_QUIT_WITHOUT_ABANDON(74, 82),
    /**
     * CHAT_MESSAGE_RANKED_GAME_STILL_SCORED_LEAVERS_GET_LOSS = 83;
     */
    CHAT_MESSAGE_RANKED_GAME_STILL_SCORED_LEAVERS_GET_LOSS(75, 83),
    /**
     * CHAT_MESSAGE_ABANDON_RANKED_BEFORE_FIRST_BLOOD_PARTY = 84;
     */
    CHAT_MESSAGE_ABANDON_RANKED_BEFORE_FIRST_BLOOD_PARTY(76, 84),
    /**
     * CHAT_MESSAGE_COMPENDIUM_LEVEL = 85;
     */
    CHAT_MESSAGE_COMPENDIUM_LEVEL(77, 85),
    /**
     * CHAT_MESSAGE_VICTORY_PREDICTION_STREAK = 86;
     */
    CHAT_MESSAGE_VICTORY_PREDICTION_STREAK(78, 86),
    /**
     * CHAT_MESSAGE_ASSASSIN_ANNOUNCE = 87;
     */
    CHAT_MESSAGE_ASSASSIN_ANNOUNCE(79, 87),
    /**
     * CHAT_MESSAGE_ASSASSIN_SUCCESS = 88;
     */
    CHAT_MESSAGE_ASSASSIN_SUCCESS(80, 88),
    /**
     * CHAT_MESSAGE_ASSASSIN_DENIED = 89;
     */
    CHAT_MESSAGE_ASSASSIN_DENIED(81, 89),
    /**
     * CHAT_MESSAGE_VICTORY_PREDICTION_SINGLE_USER_CONFIRM = 90;
     */
    CHAT_MESSAGE_VICTORY_PREDICTION_SINGLE_USER_CONFIRM(82, 90),
    /**
     * CHAT_MESSAGE_EFFIGY_KILL = 91;
     */
    CHAT_MESSAGE_EFFIGY_KILL(83, 91),
    /**
     * CHAT_MESSAGE_VOICE_TEXT_BANNED_OVERFLOW = 92;
     */
    CHAT_MESSAGE_VOICE_TEXT_BANNED_OVERFLOW(84, 92),
    /**
     * CHAT_MESSAGE_YEAR_BEAST_KILLED = 93;
     */
    CHAT_MESSAGE_YEAR_BEAST_KILLED(85, 93),
    /**
     * CHAT_MESSAGE_PAUSE_COUNTDOWN = 94;
     */
    CHAT_MESSAGE_PAUSE_COUNTDOWN(86, 94),
    /**
     * CHAT_MESSAGE_COINS_WAGERED = 95;
     */
    CHAT_MESSAGE_COINS_WAGERED(87, 95),
    /**
     * CHAT_MESSAGE_HERO_NOMINATED_BAN = 96;
     */
    CHAT_MESSAGE_HERO_NOMINATED_BAN(88, 96),
    /**
     * CHAT_MESSAGE_HERO_BANNED = 97;
     */
    CHAT_MESSAGE_HERO_BANNED(89, 97),
    /**
     * CHAT_MESSAGE_HERO_BAN_COUNT = 98;
     */
    CHAT_MESSAGE_HERO_BAN_COUNT(90, 98),
    /**
     * CHAT_MESSAGE_RIVER_PAINTED = 99;
     */
    CHAT_MESSAGE_RIVER_PAINTED(91, 99),
    /**
     * CHAT_MESSAGE_SCAN_USED = 100;
     */
    CHAT_MESSAGE_SCAN_USED(92, 100),
    /**
     * CHAT_MESSAGE_SHRINE_KILLED = 101;
     */
    CHAT_MESSAGE_SHRINE_KILLED(93, 101),
    /**
     * CHAT_MESSAGE_WAGER_TOKEN_SPENT = 102;
     */
    CHAT_MESSAGE_WAGER_TOKEN_SPENT(94, 102),
    /**
     * CHAT_MESSAGE_RANK_WAGER = 103;
     */
    CHAT_MESSAGE_RANK_WAGER(95, 103),
    /**
     * CHAT_MESSAGE_NEW_PLAYER_REMINDER = 104;
     */
    CHAT_MESSAGE_NEW_PLAYER_REMINDER(96, 104),
    /**
     * CHAT_MESSAGE_OBSERVER_WARD_KILLED = 105;
     */
    CHAT_MESSAGE_OBSERVER_WARD_KILLED(97, 105),
    /**
     * CHAT_MESSAGE_SENTRY_WARD_KILLED = 106;
     */
    CHAT_MESSAGE_SENTRY_WARD_KILLED(98, 106),
    /**
     * CHAT_MESSAGE_ITEM_PLACED_IN_NEUTRAL_STASH = 107;
     */
    CHAT_MESSAGE_ITEM_PLACED_IN_NEUTRAL_STASH(99, 107),
    /**
     * CHAT_MESSAGE_HERO_CHOICE_INVALID = 108;
     */
    CHAT_MESSAGE_HERO_CHOICE_INVALID(100, 108),
    /**
     * CHAT_MESSAGE_BOUNTY = 109;
     */
    CHAT_MESSAGE_BOUNTY(101, 109),
    /**
     * CHAT_MESSAGE_ABILITY_DRAFT_START = 110;
     */
    CHAT_MESSAGE_ABILITY_DRAFT_START(102, 110),
    /**
     * CHAT_MESSAGE_HERO_FOUND_CANDY = 111;
     */
    CHAT_MESSAGE_HERO_FOUND_CANDY(103, 111),
    /**
     * CHAT_MESSAGE_ABILITY_DRAFT_RANDOMED = 112;
     */
    CHAT_MESSAGE_ABILITY_DRAFT_RANDOMED(104, 112),
    /**
     * CHAT_MESSAGE_PRIVATE_COACH_CONNECTED = 113;
     */
    CHAT_MESSAGE_PRIVATE_COACH_CONNECTED(105, 113),
    ;

    /**
     * CHAT_MESSAGE_INVALID = -1;
     */
    public static final int CHAT_MESSAGE_INVALID_VALUE = -1;
    /**
     * CHAT_MESSAGE_HERO_KILL = 0;
     */
    public static final int CHAT_MESSAGE_HERO_KILL_VALUE = 0;
    /**
     * CHAT_MESSAGE_HERO_DENY = 1;
     */
    public static final int CHAT_MESSAGE_HERO_DENY_VALUE = 1;
    /**
     * CHAT_MESSAGE_BARRACKS_KILL = 2;
     */
    public static final int CHAT_MESSAGE_BARRACKS_KILL_VALUE = 2;
    /**
     * CHAT_MESSAGE_TOWER_KILL = 3;
     */
    public static final int CHAT_MESSAGE_TOWER_KILL_VALUE = 3;
    /**
     * CHAT_MESSAGE_TOWER_DENY = 4;
     */
    public static final int CHAT_MESSAGE_TOWER_DENY_VALUE = 4;
    /**
     * CHAT_MESSAGE_FIRSTBLOOD = 5;
     */
    public static final int CHAT_MESSAGE_FIRSTBLOOD_VALUE = 5;
    /**
     * CHAT_MESSAGE_STREAK_KILL = 6;
     */
    public static final int CHAT_MESSAGE_STREAK_KILL_VALUE = 6;
    /**
     * CHAT_MESSAGE_BUYBACK = 7;
     */
    public static final int CHAT_MESSAGE_BUYBACK_VALUE = 7;
    /**
     * CHAT_MESSAGE_AEGIS = 8;
     */
    public static final int CHAT_MESSAGE_AEGIS_VALUE = 8;
    /**
     * CHAT_MESSAGE_ROSHAN_KILL = 9;
     */
    public static final int CHAT_MESSAGE_ROSHAN_KILL_VALUE = 9;
    /**
     * CHAT_MESSAGE_COURIER_LOST = 10;
     */
    public static final int CHAT_MESSAGE_COURIER_LOST_VALUE = 10;
    /**
     * CHAT_MESSAGE_COURIER_RESPAWNED = 11;
     */
    public static final int CHAT_MESSAGE_COURIER_RESPAWNED_VALUE = 11;
    /**
     * CHAT_MESSAGE_GLYPH_USED = 12;
     */
    public static final int CHAT_MESSAGE_GLYPH_USED_VALUE = 12;
    /**
     * CHAT_MESSAGE_ITEM_PURCHASE = 13;
     */
    public static final int CHAT_MESSAGE_ITEM_PURCHASE_VALUE = 13;
    /**
     * CHAT_MESSAGE_CONNECT = 14;
     */
    public static final int CHAT_MESSAGE_CONNECT_VALUE = 14;
    /**
     * CHAT_MESSAGE_DISCONNECT = 15;
     */
    public static final int CHAT_MESSAGE_DISCONNECT_VALUE = 15;
    /**
     * CHAT_MESSAGE_DISCONNECT_WAIT_FOR_RECONNECT = 16;
     */
    public static final int CHAT_MESSAGE_DISCONNECT_WAIT_FOR_RECONNECT_VALUE = 16;
    /**
     * CHAT_MESSAGE_DISCONNECT_TIME_REMAINING = 17;
     */
    public static final int CHAT_MESSAGE_DISCONNECT_TIME_REMAINING_VALUE = 17;
    /**
     * CHAT_MESSAGE_DISCONNECT_TIME_REMAINING_PLURAL = 18;
     */
    public static final int CHAT_MESSAGE_DISCONNECT_TIME_REMAINING_PLURAL_VALUE = 18;
    /**
     * CHAT_MESSAGE_RECONNECT = 19;
     */
    public static final int CHAT_MESSAGE_RECONNECT_VALUE = 19;
    /**
     * CHAT_MESSAGE_PLAYER_LEFT = 20;
     */
    public static final int CHAT_MESSAGE_PLAYER_LEFT_VALUE = 20;
    /**
     * CHAT_MESSAGE_SAFE_TO_LEAVE = 21;
     */
    public static final int CHAT_MESSAGE_SAFE_TO_LEAVE_VALUE = 21;
    /**
     * CHAT_MESSAGE_RUNE_PICKUP = 22;
     */
    public static final int CHAT_MESSAGE_RUNE_PICKUP_VALUE = 22;
    /**
     * CHAT_MESSAGE_RUNE_BOTTLE = 23;
     */
    public static final int CHAT_MESSAGE_RUNE_BOTTLE_VALUE = 23;
    /**
     * CHAT_MESSAGE_INTHEBAG = 24;
     */
    public static final int CHAT_MESSAGE_INTHEBAG_VALUE = 24;
    /**
     * CHAT_MESSAGE_SECRETSHOP = 25;
     */
    public static final int CHAT_MESSAGE_SECRETSHOP_VALUE = 25;
    /**
     * CHAT_MESSAGE_ITEM_AUTOPURCHASED = 26;
     */
    public static final int CHAT_MESSAGE_ITEM_AUTOPURCHASED_VALUE = 26;
    /**
     * CHAT_MESSAGE_ITEMS_COMBINED = 27;
     */
    public static final int CHAT_MESSAGE_ITEMS_COMBINED_VALUE = 27;
    /**
     * CHAT_MESSAGE_SUPER_CREEPS = 28;
     */
    public static final int CHAT_MESSAGE_SUPER_CREEPS_VALUE = 28;
    /**
     * CHAT_MESSAGE_CANT_USE_ACTION_ITEM = 29;
     */
    public static final int CHAT_MESSAGE_CANT_USE_ACTION_ITEM_VALUE = 29;
    /**
     * CHAT_MESSAGE_CHARGES_EXHAUSTED = 30;
     */
    public static final int CHAT_MESSAGE_CHARGES_EXHAUSTED_VALUE = 30;
    /**
     * CHAT_MESSAGE_CANTPAUSE = 31;
     */
    public static final int CHAT_MESSAGE_CANTPAUSE_VALUE = 31;
    /**
     * CHAT_MESSAGE_NOPAUSESLEFT = 32;
     */
    public static final int CHAT_MESSAGE_NOPAUSESLEFT_VALUE = 32;
    /**
     * CHAT_MESSAGE_CANTPAUSEYET = 33;
     */
    public static final int CHAT_MESSAGE_CANTPAUSEYET_VALUE = 33;
    /**
     * CHAT_MESSAGE_PAUSED = 34;
     */
    public static final int CHAT_MESSAGE_PAUSED_VALUE = 34;
    /**
     * CHAT_MESSAGE_UNPAUSE_COUNTDOWN = 35;
     */
    public static final int CHAT_MESSAGE_UNPAUSE_COUNTDOWN_VALUE = 35;
    /**
     * CHAT_MESSAGE_UNPAUSED = 36;
     */
    public static final int CHAT_MESSAGE_UNPAUSED_VALUE = 36;
    /**
     * CHAT_MESSAGE_AUTO_UNPAUSED = 37;
     */
    public static final int CHAT_MESSAGE_AUTO_UNPAUSED_VALUE = 37;
    /**
     * CHAT_MESSAGE_YOUPAUSED = 38;
     */
    public static final int CHAT_MESSAGE_YOUPAUSED_VALUE = 38;
    /**
     * CHAT_MESSAGE_CANTUNPAUSETEAM = 39;
     */
    public static final int CHAT_MESSAGE_CANTUNPAUSETEAM_VALUE = 39;
    /**
     * CHAT_MESSAGE_VOICE_TEXT_BANNED = 41;
     */
    public static final int CHAT_MESSAGE_VOICE_TEXT_BANNED_VALUE = 41;
    /**
     * CHAT_MESSAGE_SPECTATORS_WATCHING_THIS_GAME = 42;
     */
    public static final int CHAT_MESSAGE_SPECTATORS_WATCHING_THIS_GAME_VALUE = 42;
    /**
     * CHAT_MESSAGE_REPORT_REMINDER = 43;
     */
    public static final int CHAT_MESSAGE_REPORT_REMINDER_VALUE = 43;
    /**
     * CHAT_MESSAGE_ECON_ITEM = 44;
     */
    public static final int CHAT_MESSAGE_ECON_ITEM_VALUE = 44;
    /**
     * CHAT_MESSAGE_TAUNT = 45;
     */
    public static final int CHAT_MESSAGE_TAUNT_VALUE = 45;
    /**
     * CHAT_MESSAGE_RANDOM = 46;
     */
    public static final int CHAT_MESSAGE_RANDOM_VALUE = 46;
    /**
     * CHAT_MESSAGE_RD_TURN = 47;
     */
    public static final int CHAT_MESSAGE_RD_TURN_VALUE = 47;
    /**
     * CHAT_MESSAGE_DROP_RATE_BONUS = 49;
     */
    public static final int CHAT_MESSAGE_DROP_RATE_BONUS_VALUE = 49;
    /**
     * CHAT_MESSAGE_NO_BATTLE_POINTS = 50;
     */
    public static final int CHAT_MESSAGE_NO_BATTLE_POINTS_VALUE = 50;
    /**
     * CHAT_MESSAGE_DENIED_AEGIS = 51;
     */
    public static final int CHAT_MESSAGE_DENIED_AEGIS_VALUE = 51;
    /**
     * CHAT_MESSAGE_INFORMATIONAL = 52;
     */
    public static final int CHAT_MESSAGE_INFORMATIONAL_VALUE = 52;
    /**
     * CHAT_MESSAGE_AEGIS_STOLEN = 53;
     */
    public static final int CHAT_MESSAGE_AEGIS_STOLEN_VALUE = 53;
    /**
     * CHAT_MESSAGE_ROSHAN_CANDY = 54;
     */
    public static final int CHAT_MESSAGE_ROSHAN_CANDY_VALUE = 54;
    /**
     * CHAT_MESSAGE_ITEM_GIFTED = 55;
     */
    public static final int CHAT_MESSAGE_ITEM_GIFTED_VALUE = 55;
    /**
     * CHAT_MESSAGE_HERO_KILL_WITH_GREEVIL = 56;
     */
    public static final int CHAT_MESSAGE_HERO_KILL_WITH_GREEVIL_VALUE = 56;
    /**
     * CHAT_MESSAGE_HOLDOUT_TOWER_DESTROYED = 57;
     */
    public static final int CHAT_MESSAGE_HOLDOUT_TOWER_DESTROYED_VALUE = 57;
    /**
     * CHAT_MESSAGE_HOLDOUT_WALL_DESTROYED = 58;
     */
    public static final int CHAT_MESSAGE_HOLDOUT_WALL_DESTROYED_VALUE = 58;
    /**
     * CHAT_MESSAGE_HOLDOUT_WALL_FINISHED = 59;
     */
    public static final int CHAT_MESSAGE_HOLDOUT_WALL_FINISHED_VALUE = 59;
    /**
     * CHAT_MESSAGE_PLAYER_LEFT_LIMITED_HERO = 62;
     */
    public static final int CHAT_MESSAGE_PLAYER_LEFT_LIMITED_HERO_VALUE = 62;
    /**
     * CHAT_MESSAGE_ABANDON_LIMITED_HERO_EXPLANATION = 63;
     */
    public static final int CHAT_MESSAGE_ABANDON_LIMITED_HERO_EXPLANATION_VALUE = 63;
    /**
     * CHAT_MESSAGE_DISCONNECT_LIMITED_HERO = 64;
     */
    public static final int CHAT_MESSAGE_DISCONNECT_LIMITED_HERO_VALUE = 64;
    /**
     * CHAT_MESSAGE_LOW_PRIORITY_COMPLETED_EXPLANATION = 65;
     */
    public static final int CHAT_MESSAGE_LOW_PRIORITY_COMPLETED_EXPLANATION_VALUE = 65;
    /**
     * CHAT_MESSAGE_RECRUITMENT_DROP_RATE_BONUS = 66;
     */
    public static final int CHAT_MESSAGE_RECRUITMENT_DROP_RATE_BONUS_VALUE = 66;
    /**
     * CHAT_MESSAGE_FROSTIVUS_SHINING_BOOSTER_ACTIVE = 67;
     */
    public static final int CHAT_MESSAGE_FROSTIVUS_SHINING_BOOSTER_ACTIVE_VALUE = 67;
    /**
     * CHAT_MESSAGE_PLAYER_LEFT_AFK = 73;
     */
    public static final int CHAT_MESSAGE_PLAYER_LEFT_AFK_VALUE = 73;
    /**
     * CHAT_MESSAGE_PLAYER_LEFT_DISCONNECTED_TOO_LONG = 74;
     */
    public static final int CHAT_MESSAGE_PLAYER_LEFT_DISCONNECTED_TOO_LONG_VALUE = 74;
    /**
     * CHAT_MESSAGE_PLAYER_ABANDONED = 75;
     */
    public static final int CHAT_MESSAGE_PLAYER_ABANDONED_VALUE = 75;
    /**
     * CHAT_MESSAGE_PLAYER_ABANDONED_AFK = 76;
     */
    public static final int CHAT_MESSAGE_PLAYER_ABANDONED_AFK_VALUE = 76;
    /**
     * CHAT_MESSAGE_PLAYER_ABANDONED_DISCONNECTED_TOO_LONG = 77;
     */
    public static final int CHAT_MESSAGE_PLAYER_ABANDONED_DISCONNECTED_TOO_LONG_VALUE = 77;
    /**
     * CHAT_MESSAGE_WILL_NOT_BE_SCORED = 78;
     */
    public static final int CHAT_MESSAGE_WILL_NOT_BE_SCORED_VALUE = 78;
    /**
     * CHAT_MESSAGE_WILL_NOT_BE_SCORED_RANKED = 79;
     */
    public static final int CHAT_MESSAGE_WILL_NOT_BE_SCORED_RANKED_VALUE = 79;
    /**
     * CHAT_MESSAGE_WILL_NOT_BE_SCORED_NETWORK = 80;
     */
    public static final int CHAT_MESSAGE_WILL_NOT_BE_SCORED_NETWORK_VALUE = 80;
    /**
     * CHAT_MESSAGE_WILL_NOT_BE_SCORED_NETWORK_RANKED = 81;
     */
    public static final int CHAT_MESSAGE_WILL_NOT_BE_SCORED_NETWORK_RANKED_VALUE = 81;
    /**
     * CHAT_MESSAGE_CAN_QUIT_WITHOUT_ABANDON = 82;
     */
    public static final int CHAT_MESSAGE_CAN_QUIT_WITHOUT_ABANDON_VALUE = 82;
    /**
     * CHAT_MESSAGE_RANKED_GAME_STILL_SCORED_LEAVERS_GET_LOSS = 83;
     */
    public static final int CHAT_MESSAGE_RANKED_GAME_STILL_SCORED_LEAVERS_GET_LOSS_VALUE = 83;
    /**
     * CHAT_MESSAGE_ABANDON_RANKED_BEFORE_FIRST_BLOOD_PARTY = 84;
     */
    public static final int CHAT_MESSAGE_ABANDON_RANKED_BEFORE_FIRST_BLOOD_PARTY_VALUE = 84;
    /**
     * CHAT_MESSAGE_COMPENDIUM_LEVEL = 85;
     */
    public static final int CHAT_MESSAGE_COMPENDIUM_LEVEL_VALUE = 85;
    /**
     * CHAT_MESSAGE_VICTORY_PREDICTION_STREAK = 86;
     */
    public static final int CHAT_MESSAGE_VICTORY_PREDICTION_STREAK_VALUE = 86;
    /**
     * CHAT_MESSAGE_ASSASSIN_ANNOUNCE = 87;
     */
    public static final int CHAT_MESSAGE_ASSASSIN_ANNOUNCE_VALUE = 87;
    /**
     * CHAT_MESSAGE_ASSASSIN_SUCCESS = 88;
     */
    public static final int CHAT_MESSAGE_ASSASSIN_SUCCESS_VALUE = 88;
    /**
     * CHAT_MESSAGE_ASSASSIN_DENIED = 89;
     */
    public static final int CHAT_MESSAGE_ASSASSIN_DENIED_VALUE = 89;
    /**
     * CHAT_MESSAGE_VICTORY_PREDICTION_SINGLE_USER_CONFIRM = 90;
     */
    public static final int CHAT_MESSAGE_VICTORY_PREDICTION_SINGLE_USER_CONFIRM_VALUE = 90;
    /**
     * CHAT_MESSAGE_EFFIGY_KILL = 91;
     */
    public static final int CHAT_MESSAGE_EFFIGY_KILL_VALUE = 91;
    /**
     * CHAT_MESSAGE_VOICE_TEXT_BANNED_OVERFLOW = 92;
     */
    public static final int CHAT_MESSAGE_VOICE_TEXT_BANNED_OVERFLOW_VALUE = 92;
    /**
     * CHAT_MESSAGE_YEAR_BEAST_KILLED = 93;
     */
    public static final int CHAT_MESSAGE_YEAR_BEAST_KILLED_VALUE = 93;
    /**
     * CHAT_MESSAGE_PAUSE_COUNTDOWN = 94;
     */
    public static final int CHAT_MESSAGE_PAUSE_COUNTDOWN_VALUE = 94;
    /**
     * CHAT_MESSAGE_COINS_WAGERED = 95;
     */
    public static final int CHAT_MESSAGE_COINS_WAGERED_VALUE = 95;
    /**
     * CHAT_MESSAGE_HERO_NOMINATED_BAN = 96;
     */
    public static final int CHAT_MESSAGE_HERO_NOMINATED_BAN_VALUE = 96;
    /**
     * CHAT_MESSAGE_HERO_BANNED = 97;
     */
    public static final int CHAT_MESSAGE_HERO_BANNED_VALUE = 97;
    /**
     * CHAT_MESSAGE_HERO_BAN_COUNT = 98;
     */
    public static final int CHAT_MESSAGE_HERO_BAN_COUNT_VALUE = 98;
    /**
     * CHAT_MESSAGE_RIVER_PAINTED = 99;
     */
    public static final int CHAT_MESSAGE_RIVER_PAINTED_VALUE = 99;
    /**
     * CHAT_MESSAGE_SCAN_USED = 100;
     */
    public static final int CHAT_MESSAGE_SCAN_USED_VALUE = 100;
    /**
     * CHAT_MESSAGE_SHRINE_KILLED = 101;
     */
    public static final int CHAT_MESSAGE_SHRINE_KILLED_VALUE = 101;
    /**
     * CHAT_MESSAGE_WAGER_TOKEN_SPENT = 102;
     */
    public static final int CHAT_MESSAGE_WAGER_TOKEN_SPENT_VALUE = 102;
    /**
     * CHAT_MESSAGE_RANK_WAGER = 103;
     */
    public static final int CHAT_MESSAGE_RANK_WAGER_VALUE = 103;
    /**
     * CHAT_MESSAGE_NEW_PLAYER_REMINDER = 104;
     */
    public static final int CHAT_MESSAGE_NEW_PLAYER_REMINDER_VALUE = 104;
    /**
     * CHAT_MESSAGE_OBSERVER_WARD_KILLED = 105;
     */
    public static final int CHAT_MESSAGE_OBSERVER_WARD_KILLED_VALUE = 105;
    /**
     * CHAT_MESSAGE_SENTRY_WARD_KILLED = 106;
     */
    public static final int CHAT_MESSAGE_SENTRY_WARD_KILLED_VALUE = 106;
    /**
     * CHAT_MESSAGE_ITEM_PLACED_IN_NEUTRAL_STASH = 107;
     */
    public static final int CHAT_MESSAGE_ITEM_PLACED_IN_NEUTRAL_STASH_VALUE = 107;
    /**
     * CHAT_MESSAGE_HERO_CHOICE_INVALID = 108;
     */
    public static final int CHAT_MESSAGE_HERO_CHOICE_INVALID_VALUE = 108;
    /**
     * CHAT_MESSAGE_BOUNTY = 109;
     */
    public static final int CHAT_MESSAGE_BOUNTY_VALUE = 109;
    /**
     * CHAT_MESSAGE_ABILITY_DRAFT_START = 110;
     */
    public static final int CHAT_MESSAGE_ABILITY_DRAFT_START_VALUE = 110;
    /**
     * CHAT_MESSAGE_HERO_FOUND_CANDY = 111;
     */
    public static final int CHAT_MESSAGE_HERO_FOUND_CANDY_VALUE = 111;
    /**
     * CHAT_MESSAGE_ABILITY_DRAFT_RANDOMED = 112;
     */
    public static final int CHAT_MESSAGE_ABILITY_DRAFT_RANDOMED_VALUE = 112;
    /**
     * CHAT_MESSAGE_PRIVATE_COACH_CONNECTED = 113;
     */
    public static final int CHAT_MESSAGE_PRIVATE_COACH_CONNECTED_VALUE = 113;


    public final int getNumber() { return value; }

    public static DOTA_CHAT_MESSAGE valueOf(int value) {
      switch (value) {
        case -1: return CHAT_MESSAGE_INVALID;
        case 0: return CHAT_MESSAGE_HERO_KILL;
        case 1: return CHAT_MESSAGE_HERO_DENY;
        case 2: return CHAT_MESSAGE_BARRACKS_KILL;
        case 3: return CHAT_MESSAGE_TOWER_KILL;
        case 4: return CHAT_MESSAGE_TOWER_DENY;
        case 5: return CHAT_MESSAGE_FIRSTBLOOD;
        case 6: return CHAT_MESSAGE_STREAK_KILL;
        case 7: return CHAT_MESSAGE_BUYBACK;
        case 8: return CHAT_MESSAGE_AEGIS;
        case 9: return CHAT_MESSAGE_ROSHAN_KILL;
        case 10: return CHAT_MESSAGE_COURIER_LOST;
        case 11: return CHAT_MESSAGE_COURIER_RESPAWNED;
        case 12: return CHAT_MESSAGE_GLYPH_USED;
        case 13: return CHAT_MESSAGE_ITEM_PURCHASE;
        case 14: return CHAT_MESSAGE_CONNECT;
        case 15: return CHAT_MESSAGE_DISCONNECT;
        case 16: return CHAT_MESSAGE_DISCONNECT_WAIT_FOR_RECONNECT;
        case 17: return CHAT_MESSAGE_DISCONNECT_TIME_REMAINING;
        case 18: return CHAT_MESSAGE_DISCONNECT_TIME_REMAINING_PLURAL;
        case 19: return CHAT_MESSAGE_RECONNECT;
        case 20: return CHAT_MESSAGE_PLAYER_LEFT;
        case 21: return CHAT_MESSAGE_SAFE_TO_LEAVE;
        case 22: return CHAT_MESSAGE_RUNE_PICKUP;
        case 23: return CHAT_MESSAGE_RUNE_BOTTLE;
        case 24: return CHAT_MESSAGE_INTHEBAG;
        case 25: return CHAT_MESSAGE_SECRETSHOP;
        case 26: return CHAT_MESSAGE_ITEM_AUTOPURCHASED;
        case 27: return CHAT_MESSAGE_ITEMS_COMBINED;
        case 28: return CHAT_MESSAGE_SUPER_CREEPS;
        case 29: return CHAT_MESSAGE_CANT_USE_ACTION_ITEM;
        case 30: return CHAT_MESSAGE_CHARGES_EXHAUSTED;
        case 31: return CHAT_MESSAGE_CANTPAUSE;
        case 32: return CHAT_MESSAGE_NOPAUSESLEFT;
        case 33: return CHAT_MESSAGE_CANTPAUSEYET;
        case 34: return CHAT_MESSAGE_PAUSED;
        case 35: return CHAT_MESSAGE_UNPAUSE_COUNTDOWN;
        case 36: return CHAT_MESSAGE_UNPAUSED;
        case 37: return CHAT_MESSAGE_AUTO_UNPAUSED;
        case 38: return CHAT_MESSAGE_YOUPAUSED;
        case 39: return CHAT_MESSAGE_CANTUNPAUSETEAM;
        case 41: return CHAT_MESSAGE_VOICE_TEXT_BANNED;
        case 42: return CHAT_MESSAGE_SPECTATORS_WATCHING_THIS_GAME;
        case 43: return CHAT_MESSAGE_REPORT_REMINDER;
        case 44: return CHAT_MESSAGE_ECON_ITEM;
        case 45: return CHAT_MESSAGE_TAUNT;
        case 46: return CHAT_MESSAGE_RANDOM;
        case 47: return CHAT_MESSAGE_RD_TURN;
        case 49: return CHAT_MESSAGE_DROP_RATE_BONUS;
        case 50: return CHAT_MESSAGE_NO_BATTLE_POINTS;
        case 51: return CHAT_MESSAGE_DENIED_AEGIS;
        case 52: return CHAT_MESSAGE_INFORMATIONAL;
        case 53: return CHAT_MESSAGE_AEGIS_STOLEN;
        case 54: return CHAT_MESSAGE_ROSHAN_CANDY;
        case 55: return CHAT_MESSAGE_ITEM_GIFTED;
        case 56: return CHAT_MESSAGE_HERO_KILL_WITH_GREEVIL;
        case 57: return CHAT_MESSAGE_HOLDOUT_TOWER_DESTROYED;
        case 58: return CHAT_MESSAGE_HOLDOUT_WALL_DESTROYED;
        case 59: return CHAT_MESSAGE_HOLDOUT_WALL_FINISHED;
        case 62: return CHAT_MESSAGE_PLAYER_LEFT_LIMITED_HERO;
        case 63: return CHAT_MESSAGE_ABANDON_LIMITED_HERO_EXPLANATION;
        case 64: return CHAT_MESSAGE_DISCONNECT_LIMITED_HERO;
        case 65: return CHAT_MESSAGE_LOW_PRIORITY_COMPLETED_EXPLANATION;
        case 66: return CHAT_MESSAGE_RECRUITMENT_DROP_RATE_BONUS;
        case 67: return CHAT_MESSAGE_FROSTIVUS_SHINING_BOOSTER_ACTIVE;
        case 73: return CHAT_MESSAGE_PLAYER_LEFT_AFK;
        case 74: return CHAT_MESSAGE_PLAYER_LEFT_DISCONNECTED_TOO_LONG;
        case 75: return CHAT_MESSAGE_PLAYER_ABANDONED;
        case 76: return CHAT_MESSAGE_PLAYER_ABANDONED_AFK;
        case 77: return CHAT_MESSAGE_PLAYER_ABANDONED_DISCONNECTED_TOO_LONG;
        case 78: return CHAT_MESSAGE_WILL_NOT_BE_SCORED;
        case 79: return CHAT_MESSAGE_WILL_NOT_BE_SCORED_RANKED;
        case 80: return CHAT_MESSAGE_WILL_NOT_BE_SCORED_NETWORK;
        case 81: return CHAT_MESSAGE_WILL_NOT_BE_SCORED_NETWORK_RANKED;
        case 82: return CHAT_MESSAGE_CAN_QUIT_WITHOUT_ABANDON;
        case 83: return CHAT_MESSAGE_RANKED_GAME_STILL_SCORED_LEAVERS_GET_LOSS;
        case 84: return CHAT_MESSAGE_ABANDON_RANKED_BEFORE_FIRST_BLOOD_PARTY;
        case 85: return CHAT_MESSAGE_COMPENDIUM_LEVEL;
        case 86: return CHAT_MESSAGE_VICTORY_PREDICTION_STREAK;
        case 87: return CHAT_MESSAGE_ASSASSIN_ANNOUNCE;
        case 88: return CHAT_MESSAGE_ASSASSIN_SUCCESS;
        case 89: return CHAT_MESSAGE_ASSASSIN_DENIED;
        case 90: return CHAT_MESSAGE_VICTORY_PREDICTION_SINGLE_USER_CONFIRM;
        case 91: return CHAT_MESSAGE_EFFIGY_KILL;
        case 92: return CHAT_MESSAGE_VOICE_TEXT_BANNED_OVERFLOW;
        case 93: return CHAT_MESSAGE_YEAR_BEAST_KILLED;
        case 94: return CHAT_MESSAGE_PAUSE_COUNTDOWN;
        case 95: return CHAT_MESSAGE_COINS_WAGERED;
        case 96: return CHAT_MESSAGE_HERO_NOMINATED_BAN;
        case 97: return CHAT_MESSAGE_HERO_BANNED;
        case 98: return CHAT_MESSAGE_HERO_BAN_COUNT;
        case 99: return CHAT_MESSAGE_RIVER_PAINTED;
        case 100: return CHAT_MESSAGE_SCAN_USED;
        case 101: return CHAT_MESSAGE_SHRINE_KILLED;
        case 102: return CHAT_MESSAGE_WAGER_TOKEN_SPENT;
        case 103: return CHAT_MESSAGE_RANK_WAGER;
        case 104: return CHAT_MESSAGE_NEW_PLAYER_REMINDER;
        case 105: return CHAT_MESSAGE_OBSERVER_WARD_KILLED;
        case 106: return CHAT_MESSAGE_SENTRY_WARD_KILLED;
        case 107: return CHAT_MESSAGE_ITEM_PLACED_IN_NEUTRAL_STASH;
        case 108: return CHAT_MESSAGE_HERO_CHOICE_INVALID;
        case 109: return CHAT_MESSAGE_BOUNTY;
        case 110: return CHAT_MESSAGE_ABILITY_DRAFT_START;
        case 111: return CHAT_MESSAGE_HERO_FOUND_CANDY;
        case 112: return CHAT_MESSAGE_ABILITY_DRAFT_RANDOMED;
        case 113: return CHAT_MESSAGE_PRIVATE_COACH_CONNECTED;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap
        internalGetValueMap() {
      return internalValueMap;
    }
    private static com.google.protobuf.Internal.EnumLiteMap
        internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap() {
            public DOTA_CHAT_MESSAGE findValueByNumber(int number) {
              return DOTA_CHAT_MESSAGE.valueOf(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      return getDescriptor().getValues().get(index);
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.getDescriptor().getEnumTypes().get(1);
    }

    private static final DOTA_CHAT_MESSAGE[] VALUES = values();

    public static DOTA_CHAT_MESSAGE valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      return VALUES[desc.getIndex()];
    }

    private final int index;
    private final int value;

    private DOTA_CHAT_MESSAGE(int index, int value) {
      this.index = index;
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:DOTA_CHAT_MESSAGE)
  }

  /**
   * Protobuf enum {@code DOTA_NO_BATTLE_POINTS_REASONS}
   */
  public enum DOTA_NO_BATTLE_POINTS_REASONS
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * NO_BATTLE_POINTS_WRONG_LOBBY_TYPE = 1;
     */
    NO_BATTLE_POINTS_WRONG_LOBBY_TYPE(0, 1),
    /**
     * NO_BATTLE_POINTS_PRACTICE_BOTS = 2;
     */
    NO_BATTLE_POINTS_PRACTICE_BOTS(1, 2),
    /**
     * NO_BATTLE_POINTS_CHEATS_ENABLED = 3;
     */
    NO_BATTLE_POINTS_CHEATS_ENABLED(2, 3),
    /**
     * NO_BATTLE_POINTS_LOW_PRIORITY = 4;
     */
    NO_BATTLE_POINTS_LOW_PRIORITY(3, 4),
    ;

    /**
     * NO_BATTLE_POINTS_WRONG_LOBBY_TYPE = 1;
     */
    public static final int NO_BATTLE_POINTS_WRONG_LOBBY_TYPE_VALUE = 1;
    /**
     * NO_BATTLE_POINTS_PRACTICE_BOTS = 2;
     */
    public static final int NO_BATTLE_POINTS_PRACTICE_BOTS_VALUE = 2;
    /**
     * NO_BATTLE_POINTS_CHEATS_ENABLED = 3;
     */
    public static final int NO_BATTLE_POINTS_CHEATS_ENABLED_VALUE = 3;
    /**
     * NO_BATTLE_POINTS_LOW_PRIORITY = 4;
     */
    public static final int NO_BATTLE_POINTS_LOW_PRIORITY_VALUE = 4;


    public final int getNumber() { return value; }

    public static DOTA_NO_BATTLE_POINTS_REASONS valueOf(int value) {
      switch (value) {
        case 1: return NO_BATTLE_POINTS_WRONG_LOBBY_TYPE;
        case 2: return NO_BATTLE_POINTS_PRACTICE_BOTS;
        case 3: return NO_BATTLE_POINTS_CHEATS_ENABLED;
        case 4: return NO_BATTLE_POINTS_LOW_PRIORITY;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap
        internalGetValueMap() {
      return internalValueMap;
    }
    private static com.google.protobuf.Internal.EnumLiteMap
        internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap() {
            public DOTA_NO_BATTLE_POINTS_REASONS findValueByNumber(int number) {
              return DOTA_NO_BATTLE_POINTS_REASONS.valueOf(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      return getDescriptor().getValues().get(index);
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.getDescriptor().getEnumTypes().get(2);
    }

    private static final DOTA_NO_BATTLE_POINTS_REASONS[] VALUES = values();

    public static DOTA_NO_BATTLE_POINTS_REASONS valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      return VALUES[desc.getIndex()];
    }

    private final int index;
    private final int value;

    private DOTA_NO_BATTLE_POINTS_REASONS(int index, int value) {
      this.index = index;
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:DOTA_NO_BATTLE_POINTS_REASONS)
  }

  /**
   * Protobuf enum {@code DOTA_REPLAY_STATE_EVENT}
   */
  public enum DOTA_REPLAY_STATE_EVENT
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * DOTA_REPLAY_STATE_EVENT_GAME_START = 1;
     */
    DOTA_REPLAY_STATE_EVENT_GAME_START(0, 1),
    /**
     * DOTA_REPLAY_STATE_EVENT_STARTING_HORN = 2;
     */
    DOTA_REPLAY_STATE_EVENT_STARTING_HORN(1, 2),
    /**
     * DOTA_REPLAY_STATE_EVENT_FIRST_BLOOD = 3;
     */
    DOTA_REPLAY_STATE_EVENT_FIRST_BLOOD(2, 3),
    /**
     * DOTA_REPLAY_STATE_EVENT_SHOWCASE = 4;
     */
    DOTA_REPLAY_STATE_EVENT_SHOWCASE(3, 4),
    /**
     * DOTA_REPLAY_STATE_EVENT_POST_GAME = 5;
     */
    DOTA_REPLAY_STATE_EVENT_POST_GAME(4, 5),
    /**
     * DOTA_REPLAY_STATE_EVENT_WAIT_FOR_MAP = 6;
     */
    DOTA_REPLAY_STATE_EVENT_WAIT_FOR_MAP(5, 6),
    ;

    /**
     * DOTA_REPLAY_STATE_EVENT_GAME_START = 1;
     */
    public static final int DOTA_REPLAY_STATE_EVENT_GAME_START_VALUE = 1;
    /**
     * DOTA_REPLAY_STATE_EVENT_STARTING_HORN = 2;
     */
    public static final int DOTA_REPLAY_STATE_EVENT_STARTING_HORN_VALUE = 2;
    /**
     * DOTA_REPLAY_STATE_EVENT_FIRST_BLOOD = 3;
     */
    public static final int DOTA_REPLAY_STATE_EVENT_FIRST_BLOOD_VALUE = 3;
    /**
     * DOTA_REPLAY_STATE_EVENT_SHOWCASE = 4;
     */
    public static final int DOTA_REPLAY_STATE_EVENT_SHOWCASE_VALUE = 4;
    /**
     * DOTA_REPLAY_STATE_EVENT_POST_GAME = 5;
     */
    public static final int DOTA_REPLAY_STATE_EVENT_POST_GAME_VALUE = 5;
    /**
     * DOTA_REPLAY_STATE_EVENT_WAIT_FOR_MAP = 6;
     */
    public static final int DOTA_REPLAY_STATE_EVENT_WAIT_FOR_MAP_VALUE = 6;


    public final int getNumber() { return value; }

    public static DOTA_REPLAY_STATE_EVENT valueOf(int value) {
      switch (value) {
        case 1: return DOTA_REPLAY_STATE_EVENT_GAME_START;
        case 2: return DOTA_REPLAY_STATE_EVENT_STARTING_HORN;
        case 3: return DOTA_REPLAY_STATE_EVENT_FIRST_BLOOD;
        case 4: return DOTA_REPLAY_STATE_EVENT_SHOWCASE;
        case 5: return DOTA_REPLAY_STATE_EVENT_POST_GAME;
        case 6: return DOTA_REPLAY_STATE_EVENT_WAIT_FOR_MAP;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap
        internalGetValueMap() {
      return internalValueMap;
    }
    private static com.google.protobuf.Internal.EnumLiteMap
        internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap() {
            public DOTA_REPLAY_STATE_EVENT findValueByNumber(int number) {
              return DOTA_REPLAY_STATE_EVENT.valueOf(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      return getDescriptor().getValues().get(index);
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.getDescriptor().getEnumTypes().get(3);
    }

    private static final DOTA_REPLAY_STATE_EVENT[] VALUES = values();

    public static DOTA_REPLAY_STATE_EVENT valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      return VALUES[desc.getIndex()];
    }

    private final int index;
    private final int value;

    private DOTA_REPLAY_STATE_EVENT(int index, int value) {
      this.index = index;
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:DOTA_REPLAY_STATE_EVENT)
  }

  /**
   * Protobuf enum {@code DOTA_CHAT_INFORMATIONAL}
   */
  public enum DOTA_CHAT_INFORMATIONAL
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * INFO_COOP_BATTLE_POINTS_RULES = 1;
     */
    INFO_COOP_BATTLE_POINTS_RULES(0, 1),
    /**
     * INFO_FROSTIVUS_ABANDON_REMINDER = 2;
     */
    INFO_FROSTIVUS_ABANDON_REMINDER(1, 2),
    /**
     * INFO_RANKED_REMINDER = 3;
     */
    INFO_RANKED_REMINDER(2, 3),
    /**
     * INFO_COOP_LOW_PRIORITY_PASSIVE_REMINDER = 4;
     */
    INFO_COOP_LOW_PRIORITY_PASSIVE_REMINDER(3, 4),
    /**
     * INFO_CUSTOM_GAME_PENALTY_REMINDER = 5;
     */
    INFO_CUSTOM_GAME_PENALTY_REMINDER(4, 5),
    ;

    /**
     * INFO_COOP_BATTLE_POINTS_RULES = 1;
     */
    public static final int INFO_COOP_BATTLE_POINTS_RULES_VALUE = 1;
    /**
     * INFO_FROSTIVUS_ABANDON_REMINDER = 2;
     */
    public static final int INFO_FROSTIVUS_ABANDON_REMINDER_VALUE = 2;
    /**
     * INFO_RANKED_REMINDER = 3;
     */
    public static final int INFO_RANKED_REMINDER_VALUE = 3;
    /**
     * INFO_COOP_LOW_PRIORITY_PASSIVE_REMINDER = 4;
     */
    public static final int INFO_COOP_LOW_PRIORITY_PASSIVE_REMINDER_VALUE = 4;
    /**
     * INFO_CUSTOM_GAME_PENALTY_REMINDER = 5;
     */
    public static final int INFO_CUSTOM_GAME_PENALTY_REMINDER_VALUE = 5;


    public final int getNumber() { return value; }

    public static DOTA_CHAT_INFORMATIONAL valueOf(int value) {
      switch (value) {
        case 1: return INFO_COOP_BATTLE_POINTS_RULES;
        case 2: return INFO_FROSTIVUS_ABANDON_REMINDER;
        case 3: return INFO_RANKED_REMINDER;
        case 4: return INFO_COOP_LOW_PRIORITY_PASSIVE_REMINDER;
        case 5: return INFO_CUSTOM_GAME_PENALTY_REMINDER;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap
        internalGetValueMap() {
      return internalValueMap;
    }
    private static com.google.protobuf.Internal.EnumLiteMap
        internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap() {
            public DOTA_CHAT_INFORMATIONAL findValueByNumber(int number) {
              return DOTA_CHAT_INFORMATIONAL.valueOf(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      return getDescriptor().getValues().get(index);
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.getDescriptor().getEnumTypes().get(4);
    }

    private static final DOTA_CHAT_INFORMATIONAL[] VALUES = values();

    public static DOTA_CHAT_INFORMATIONAL valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      return VALUES[desc.getIndex()];
    }

    private final int index;
    private final int value;

    private DOTA_CHAT_INFORMATIONAL(int index, int value) {
      this.index = index;
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:DOTA_CHAT_INFORMATIONAL)
  }

  /**
   * Protobuf enum {@code DOTA_ABILITY_PING_TYPE}
   */
  public enum DOTA_ABILITY_PING_TYPE
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * ABILITY_PING_READY = 1;
     */
    ABILITY_PING_READY(0, 1),
    /**
     * ABILITY_PING_MANA = 2;
     */
    ABILITY_PING_MANA(1, 2),
    /**
     * ABILITY_PING_COOLDOWN = 3;
     */
    ABILITY_PING_COOLDOWN(2, 3),
    /**
     * ABILITY_PING_ENEMY = 4;
     */
    ABILITY_PING_ENEMY(3, 4),
    /**
     * ABILITY_PING_UNLEARNED = 5;
     */
    ABILITY_PING_UNLEARNED(4, 5),
    /**
     * ABILITY_PING_INBACKPACK = 6;
     */
    ABILITY_PING_INBACKPACK(5, 6),
    /**
     * ABILITY_PING_INSTASH = 7;
     */
    ABILITY_PING_INSTASH(6, 7),
    /**
     * ABILITY_PING_ONCOURIER = 8;
     */
    ABILITY_PING_ONCOURIER(7, 8),
    /**
     * ABILITY_PING_ALLY = 9;
     */
    ABILITY_PING_ALLY(8, 9),
    /**
     * ABILITY_PING_LEARN_READY = 10;
     */
    ABILITY_PING_LEARN_READY(9, 10),
    /**
     * ABILITY_PING_WILL_LEARN = 11;
     */
    ABILITY_PING_WILL_LEARN(10, 11),
    /**
     * ABILITY_PING_FUTURE_LEARN = 12;
     */
    ABILITY_PING_FUTURE_LEARN(11, 12),
    /**
     * ABILITY_PING_NEUTRAL_OFFER = 13;
     */
    ABILITY_PING_NEUTRAL_OFFER(12, 13),
    /**
     * ABILITY_PING_NEUTRAL_REQUEST = 14;
     */
    ABILITY_PING_NEUTRAL_REQUEST(13, 14),
    /**
     * ABILITY_PING_NEUTRAL_EQUIP = 15;
     */
    ABILITY_PING_NEUTRAL_EQUIP(14, 15),
    ;

    /**
     * ABILITY_PING_READY = 1;
     */
    public static final int ABILITY_PING_READY_VALUE = 1;
    /**
     * ABILITY_PING_MANA = 2;
     */
    public static final int ABILITY_PING_MANA_VALUE = 2;
    /**
     * ABILITY_PING_COOLDOWN = 3;
     */
    public static final int ABILITY_PING_COOLDOWN_VALUE = 3;
    /**
     * ABILITY_PING_ENEMY = 4;
     */
    public static final int ABILITY_PING_ENEMY_VALUE = 4;
    /**
     * ABILITY_PING_UNLEARNED = 5;
     */
    public static final int ABILITY_PING_UNLEARNED_VALUE = 5;
    /**
     * ABILITY_PING_INBACKPACK = 6;
     */
    public static final int ABILITY_PING_INBACKPACK_VALUE = 6;
    /**
     * ABILITY_PING_INSTASH = 7;
     */
    public static final int ABILITY_PING_INSTASH_VALUE = 7;
    /**
     * ABILITY_PING_ONCOURIER = 8;
     */
    public static final int ABILITY_PING_ONCOURIER_VALUE = 8;
    /**
     * ABILITY_PING_ALLY = 9;
     */
    public static final int ABILITY_PING_ALLY_VALUE = 9;
    /**
     * ABILITY_PING_LEARN_READY = 10;
     */
    public static final int ABILITY_PING_LEARN_READY_VALUE = 10;
    /**
     * ABILITY_PING_WILL_LEARN = 11;
     */
    public static final int ABILITY_PING_WILL_LEARN_VALUE = 11;
    /**
     * ABILITY_PING_FUTURE_LEARN = 12;
     */
    public static final int ABILITY_PING_FUTURE_LEARN_VALUE = 12;
    /**
     * ABILITY_PING_NEUTRAL_OFFER = 13;
     */
    public static final int ABILITY_PING_NEUTRAL_OFFER_VALUE = 13;
    /**
     * ABILITY_PING_NEUTRAL_REQUEST = 14;
     */
    public static final int ABILITY_PING_NEUTRAL_REQUEST_VALUE = 14;
    /**
     * ABILITY_PING_NEUTRAL_EQUIP = 15;
     */
    public static final int ABILITY_PING_NEUTRAL_EQUIP_VALUE = 15;


    public final int getNumber() { return value; }

    public static DOTA_ABILITY_PING_TYPE valueOf(int value) {
      switch (value) {
        case 1: return ABILITY_PING_READY;
        case 2: return ABILITY_PING_MANA;
        case 3: return ABILITY_PING_COOLDOWN;
        case 4: return ABILITY_PING_ENEMY;
        case 5: return ABILITY_PING_UNLEARNED;
        case 6: return ABILITY_PING_INBACKPACK;
        case 7: return ABILITY_PING_INSTASH;
        case 8: return ABILITY_PING_ONCOURIER;
        case 9: return ABILITY_PING_ALLY;
        case 10: return ABILITY_PING_LEARN_READY;
        case 11: return ABILITY_PING_WILL_LEARN;
        case 12: return ABILITY_PING_FUTURE_LEARN;
        case 13: return ABILITY_PING_NEUTRAL_OFFER;
        case 14: return ABILITY_PING_NEUTRAL_REQUEST;
        case 15: return ABILITY_PING_NEUTRAL_EQUIP;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap
        internalGetValueMap() {
      return internalValueMap;
    }
    private static com.google.protobuf.Internal.EnumLiteMap
        internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap() {
            public DOTA_ABILITY_PING_TYPE findValueByNumber(int number) {
              return DOTA_ABILITY_PING_TYPE.valueOf(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      return getDescriptor().getValues().get(index);
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.getDescriptor().getEnumTypes().get(5);
    }

    private static final DOTA_ABILITY_PING_TYPE[] VALUES = values();

    public static DOTA_ABILITY_PING_TYPE valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      return VALUES[desc.getIndex()];
    }

    private final int index;
    private final int value;

    private DOTA_ABILITY_PING_TYPE(int index, int value) {
      this.index = index;
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:DOTA_ABILITY_PING_TYPE)
  }

  /**
   * Protobuf enum {@code EDotaEntityMessages}
   */
  public enum EDotaEntityMessages
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * DOTA_UNIT_SPEECH = 0;
     */
    DOTA_UNIT_SPEECH(0, 0),
    /**
     * DOTA_UNIT_SPEECH_MUTE = 1;
     */
    DOTA_UNIT_SPEECH_MUTE(1, 1),
    /**
     * DOTA_UNIT_ADD_GESTURE = 2;
     */
    DOTA_UNIT_ADD_GESTURE(2, 2),
    /**
     * DOTA_UNIT_REMOVE_GESTURE = 3;
     */
    DOTA_UNIT_REMOVE_GESTURE(3, 3),
    /**
     * DOTA_UNIT_REMOVE_ALL_GESTURES = 4;
     */
    DOTA_UNIT_REMOVE_ALL_GESTURES(4, 4),
    /**
     * DOTA_UNIT_FADE_GESTURE = 6;
     */
    DOTA_UNIT_FADE_GESTURE(5, 6),
    /**
     * DOTA_UNIT_SPEECH_CLIENTSIDE_RULES = 7;
     */
    DOTA_UNIT_SPEECH_CLIENTSIDE_RULES(6, 7),
    ;

    /**
     * DOTA_UNIT_SPEECH = 0;
     */
    public static final int DOTA_UNIT_SPEECH_VALUE = 0;
    /**
     * DOTA_UNIT_SPEECH_MUTE = 1;
     */
    public static final int DOTA_UNIT_SPEECH_MUTE_VALUE = 1;
    /**
     * DOTA_UNIT_ADD_GESTURE = 2;
     */
    public static final int DOTA_UNIT_ADD_GESTURE_VALUE = 2;
    /**
     * DOTA_UNIT_REMOVE_GESTURE = 3;
     */
    public static final int DOTA_UNIT_REMOVE_GESTURE_VALUE = 3;
    /**
     * DOTA_UNIT_REMOVE_ALL_GESTURES = 4;
     */
    public static final int DOTA_UNIT_REMOVE_ALL_GESTURES_VALUE = 4;
    /**
     * DOTA_UNIT_FADE_GESTURE = 6;
     */
    public static final int DOTA_UNIT_FADE_GESTURE_VALUE = 6;
    /**
     * DOTA_UNIT_SPEECH_CLIENTSIDE_RULES = 7;
     */
    public static final int DOTA_UNIT_SPEECH_CLIENTSIDE_RULES_VALUE = 7;


    public final int getNumber() { return value; }

    public static EDotaEntityMessages valueOf(int value) {
      switch (value) {
        case 0: return DOTA_UNIT_SPEECH;
        case 1: return DOTA_UNIT_SPEECH_MUTE;
        case 2: return DOTA_UNIT_ADD_GESTURE;
        case 3: return DOTA_UNIT_REMOVE_GESTURE;
        case 4: return DOTA_UNIT_REMOVE_ALL_GESTURES;
        case 6: return DOTA_UNIT_FADE_GESTURE;
        case 7: return DOTA_UNIT_SPEECH_CLIENTSIDE_RULES;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap
        internalGetValueMap() {
      return internalValueMap;
    }
    private static com.google.protobuf.Internal.EnumLiteMap
        internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap() {
            public EDotaEntityMessages findValueByNumber(int number) {
              return EDotaEntityMessages.valueOf(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      return getDescriptor().getValues().get(index);
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.getDescriptor().getEnumTypes().get(6);
    }

    private static final EDotaEntityMessages[] VALUES = values();

    public static EDotaEntityMessages valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      return VALUES[desc.getIndex()];
    }

    private final int index;
    private final int value;

    private EDotaEntityMessages(int index, int value) {
      this.index = index;
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:EDotaEntityMessages)
  }

  /**
   * Protobuf enum {@code DOTA_PARTICLE_MESSAGE}
   */
  public enum DOTA_PARTICLE_MESSAGE
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * DOTA_PARTICLE_MANAGER_EVENT_CREATE = 0;
     */
    DOTA_PARTICLE_MANAGER_EVENT_CREATE(0, 0),
    /**
     * DOTA_PARTICLE_MANAGER_EVENT_UPDATE = 1;
     */
    DOTA_PARTICLE_MANAGER_EVENT_UPDATE(1, 1),
    /**
     * DOTA_PARTICLE_MANAGER_EVENT_UPDATE_FORWARD = 2;
     */
    DOTA_PARTICLE_MANAGER_EVENT_UPDATE_FORWARD(2, 2),
    /**
     * DOTA_PARTICLE_MANAGER_EVENT_UPDATE_ORIENTATION = 3;
     */
    DOTA_PARTICLE_MANAGER_EVENT_UPDATE_ORIENTATION(3, 3),
    /**
     * DOTA_PARTICLE_MANAGER_EVENT_UPDATE_FALLBACK = 4;
     */
    DOTA_PARTICLE_MANAGER_EVENT_UPDATE_FALLBACK(4, 4),
    /**
     * DOTA_PARTICLE_MANAGER_EVENT_UPDATE_ENT = 5;
     */
    DOTA_PARTICLE_MANAGER_EVENT_UPDATE_ENT(5, 5),
    /**
     * DOTA_PARTICLE_MANAGER_EVENT_UPDATE_OFFSET = 6;
     */
    DOTA_PARTICLE_MANAGER_EVENT_UPDATE_OFFSET(6, 6),
    /**
     * DOTA_PARTICLE_MANAGER_EVENT_DESTROY = 7;
     */
    DOTA_PARTICLE_MANAGER_EVENT_DESTROY(7, 7),
    /**
     * DOTA_PARTICLE_MANAGER_EVENT_DESTROY_INVOLVING = 8;
     */
    DOTA_PARTICLE_MANAGER_EVENT_DESTROY_INVOLVING(8, 8),
    /**
     * DOTA_PARTICLE_MANAGER_EVENT_RELEASE = 9;
     */
    DOTA_PARTICLE_MANAGER_EVENT_RELEASE(9, 9),
    /**
     * DOTA_PARTICLE_MANAGER_EVENT_LATENCY = 10;
     */
    DOTA_PARTICLE_MANAGER_EVENT_LATENCY(10, 10),
    /**
     * DOTA_PARTICLE_MANAGER_EVENT_SHOULD_DRAW = 11;
     */
    DOTA_PARTICLE_MANAGER_EVENT_SHOULD_DRAW(11, 11),
    /**
     * DOTA_PARTICLE_MANAGER_EVENT_FROZEN = 12;
     */
    DOTA_PARTICLE_MANAGER_EVENT_FROZEN(12, 12),
    /**
     * DOTA_PARTICLE_MANAGER_EVENT_CHANGE_CONTROL_POINT_ATTACHMENT = 13;
     */
    DOTA_PARTICLE_MANAGER_EVENT_CHANGE_CONTROL_POINT_ATTACHMENT(13, 13),
    /**
     * DOTA_PARTICLE_MANAGER_EVENT_UPDATE_ENTITY_POSITION = 14;
     */
    DOTA_PARTICLE_MANAGER_EVENT_UPDATE_ENTITY_POSITION(14, 14),
    /**
     * DOTA_PARTICLE_MANAGER_EVENT_SET_FOW_PROPERTIES = 15;
     */
    DOTA_PARTICLE_MANAGER_EVENT_SET_FOW_PROPERTIES(15, 15),
    /**
     * DOTA_PARTICLE_MANAGER_EVENT_SET_TEXT = 16;
     */
    DOTA_PARTICLE_MANAGER_EVENT_SET_TEXT(16, 16),
    /**
     * DOTA_PARTICLE_MANAGER_EVENT_SET_SHOULD_CHECK_FOW = 17;
     */
    DOTA_PARTICLE_MANAGER_EVENT_SET_SHOULD_CHECK_FOW(17, 17),
    /**
     * DOTA_PARTICLE_MANAGER_EVENT_SET_CONTROL_POINT_MODEL = 18;
     */
    DOTA_PARTICLE_MANAGER_EVENT_SET_CONTROL_POINT_MODEL(18, 18),
    /**
     * DOTA_PARTICLE_MANAGER_EVENT_SET_CONTROL_POINT_SNAPSHOT = 19;
     */
    DOTA_PARTICLE_MANAGER_EVENT_SET_CONTROL_POINT_SNAPSHOT(19, 19),
    /**
     * DOTA_PARTICLE_MANAGER_EVENT_SET_TEXTURE_ATTRIBUTE = 20;
     */
    DOTA_PARTICLE_MANAGER_EVENT_SET_TEXTURE_ATTRIBUTE(20, 20),
    /**
     * DOTA_PARTICLE_MANAGER_EVENT_SET_SCENE_OBJECT_GENERIC_FLAG = 21;
     */
    DOTA_PARTICLE_MANAGER_EVENT_SET_SCENE_OBJECT_GENERIC_FLAG(21, 21),
    /**
     * DOTA_PARTICLE_MANAGER_EVENT_SET_SCENE_OBJECT_TINT_AND_DESAT = 22;
     */
    DOTA_PARTICLE_MANAGER_EVENT_SET_SCENE_OBJECT_TINT_AND_DESAT(22, 22),
    ;

    /**
     * DOTA_PARTICLE_MANAGER_EVENT_CREATE = 0;
     */
    public static final int DOTA_PARTICLE_MANAGER_EVENT_CREATE_VALUE = 0;
    /**
     * DOTA_PARTICLE_MANAGER_EVENT_UPDATE = 1;
     */
    public static final int DOTA_PARTICLE_MANAGER_EVENT_UPDATE_VALUE = 1;
    /**
     * DOTA_PARTICLE_MANAGER_EVENT_UPDATE_FORWARD = 2;
     */
    public static final int DOTA_PARTICLE_MANAGER_EVENT_UPDATE_FORWARD_VALUE = 2;
    /**
     * DOTA_PARTICLE_MANAGER_EVENT_UPDATE_ORIENTATION = 3;
     */
    public static final int DOTA_PARTICLE_MANAGER_EVENT_UPDATE_ORIENTATION_VALUE = 3;
    /**
     * DOTA_PARTICLE_MANAGER_EVENT_UPDATE_FALLBACK = 4;
     */
    public static final int DOTA_PARTICLE_MANAGER_EVENT_UPDATE_FALLBACK_VALUE = 4;
    /**
     * DOTA_PARTICLE_MANAGER_EVENT_UPDATE_ENT = 5;
     */
    public static final int DOTA_PARTICLE_MANAGER_EVENT_UPDATE_ENT_VALUE = 5;
    /**
     * DOTA_PARTICLE_MANAGER_EVENT_UPDATE_OFFSET = 6;
     */
    public static final int DOTA_PARTICLE_MANAGER_EVENT_UPDATE_OFFSET_VALUE = 6;
    /**
     * DOTA_PARTICLE_MANAGER_EVENT_DESTROY = 7;
     */
    public static final int DOTA_PARTICLE_MANAGER_EVENT_DESTROY_VALUE = 7;
    /**
     * DOTA_PARTICLE_MANAGER_EVENT_DESTROY_INVOLVING = 8;
     */
    public static final int DOTA_PARTICLE_MANAGER_EVENT_DESTROY_INVOLVING_VALUE = 8;
    /**
     * DOTA_PARTICLE_MANAGER_EVENT_RELEASE = 9;
     */
    public static final int DOTA_PARTICLE_MANAGER_EVENT_RELEASE_VALUE = 9;
    /**
     * DOTA_PARTICLE_MANAGER_EVENT_LATENCY = 10;
     */
    public static final int DOTA_PARTICLE_MANAGER_EVENT_LATENCY_VALUE = 10;
    /**
     * DOTA_PARTICLE_MANAGER_EVENT_SHOULD_DRAW = 11;
     */
    public static final int DOTA_PARTICLE_MANAGER_EVENT_SHOULD_DRAW_VALUE = 11;
    /**
     * DOTA_PARTICLE_MANAGER_EVENT_FROZEN = 12;
     */
    public static final int DOTA_PARTICLE_MANAGER_EVENT_FROZEN_VALUE = 12;
    /**
     * DOTA_PARTICLE_MANAGER_EVENT_CHANGE_CONTROL_POINT_ATTACHMENT = 13;
     */
    public static final int DOTA_PARTICLE_MANAGER_EVENT_CHANGE_CONTROL_POINT_ATTACHMENT_VALUE = 13;
    /**
     * DOTA_PARTICLE_MANAGER_EVENT_UPDATE_ENTITY_POSITION = 14;
     */
    public static final int DOTA_PARTICLE_MANAGER_EVENT_UPDATE_ENTITY_POSITION_VALUE = 14;
    /**
     * DOTA_PARTICLE_MANAGER_EVENT_SET_FOW_PROPERTIES = 15;
     */
    public static final int DOTA_PARTICLE_MANAGER_EVENT_SET_FOW_PROPERTIES_VALUE = 15;
    /**
     * DOTA_PARTICLE_MANAGER_EVENT_SET_TEXT = 16;
     */
    public static final int DOTA_PARTICLE_MANAGER_EVENT_SET_TEXT_VALUE = 16;
    /**
     * DOTA_PARTICLE_MANAGER_EVENT_SET_SHOULD_CHECK_FOW = 17;
     */
    public static final int DOTA_PARTICLE_MANAGER_EVENT_SET_SHOULD_CHECK_FOW_VALUE = 17;
    /**
     * DOTA_PARTICLE_MANAGER_EVENT_SET_CONTROL_POINT_MODEL = 18;
     */
    public static final int DOTA_PARTICLE_MANAGER_EVENT_SET_CONTROL_POINT_MODEL_VALUE = 18;
    /**
     * DOTA_PARTICLE_MANAGER_EVENT_SET_CONTROL_POINT_SNAPSHOT = 19;
     */
    public static final int DOTA_PARTICLE_MANAGER_EVENT_SET_CONTROL_POINT_SNAPSHOT_VALUE = 19;
    /**
     * DOTA_PARTICLE_MANAGER_EVENT_SET_TEXTURE_ATTRIBUTE = 20;
     */
    public static final int DOTA_PARTICLE_MANAGER_EVENT_SET_TEXTURE_ATTRIBUTE_VALUE = 20;
    /**
     * DOTA_PARTICLE_MANAGER_EVENT_SET_SCENE_OBJECT_GENERIC_FLAG = 21;
     */
    public static final int DOTA_PARTICLE_MANAGER_EVENT_SET_SCENE_OBJECT_GENERIC_FLAG_VALUE = 21;
    /**
     * DOTA_PARTICLE_MANAGER_EVENT_SET_SCENE_OBJECT_TINT_AND_DESAT = 22;
     */
    public static final int DOTA_PARTICLE_MANAGER_EVENT_SET_SCENE_OBJECT_TINT_AND_DESAT_VALUE = 22;


    public final int getNumber() { return value; }

    public static DOTA_PARTICLE_MESSAGE valueOf(int value) {
      switch (value) {
        case 0: return DOTA_PARTICLE_MANAGER_EVENT_CREATE;
        case 1: return DOTA_PARTICLE_MANAGER_EVENT_UPDATE;
        case 2: return DOTA_PARTICLE_MANAGER_EVENT_UPDATE_FORWARD;
        case 3: return DOTA_PARTICLE_MANAGER_EVENT_UPDATE_ORIENTATION;
        case 4: return DOTA_PARTICLE_MANAGER_EVENT_UPDATE_FALLBACK;
        case 5: return DOTA_PARTICLE_MANAGER_EVENT_UPDATE_ENT;
        case 6: return DOTA_PARTICLE_MANAGER_EVENT_UPDATE_OFFSET;
        case 7: return DOTA_PARTICLE_MANAGER_EVENT_DESTROY;
        case 8: return DOTA_PARTICLE_MANAGER_EVENT_DESTROY_INVOLVING;
        case 9: return DOTA_PARTICLE_MANAGER_EVENT_RELEASE;
        case 10: return DOTA_PARTICLE_MANAGER_EVENT_LATENCY;
        case 11: return DOTA_PARTICLE_MANAGER_EVENT_SHOULD_DRAW;
        case 12: return DOTA_PARTICLE_MANAGER_EVENT_FROZEN;
        case 13: return DOTA_PARTICLE_MANAGER_EVENT_CHANGE_CONTROL_POINT_ATTACHMENT;
        case 14: return DOTA_PARTICLE_MANAGER_EVENT_UPDATE_ENTITY_POSITION;
        case 15: return DOTA_PARTICLE_MANAGER_EVENT_SET_FOW_PROPERTIES;
        case 16: return DOTA_PARTICLE_MANAGER_EVENT_SET_TEXT;
        case 17: return DOTA_PARTICLE_MANAGER_EVENT_SET_SHOULD_CHECK_FOW;
        case 18: return DOTA_PARTICLE_MANAGER_EVENT_SET_CONTROL_POINT_MODEL;
        case 19: return DOTA_PARTICLE_MANAGER_EVENT_SET_CONTROL_POINT_SNAPSHOT;
        case 20: return DOTA_PARTICLE_MANAGER_EVENT_SET_TEXTURE_ATTRIBUTE;
        case 21: return DOTA_PARTICLE_MANAGER_EVENT_SET_SCENE_OBJECT_GENERIC_FLAG;
        case 22: return DOTA_PARTICLE_MANAGER_EVENT_SET_SCENE_OBJECT_TINT_AND_DESAT;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap
        internalGetValueMap() {
      return internalValueMap;
    }
    private static com.google.protobuf.Internal.EnumLiteMap
        internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap() {
            public DOTA_PARTICLE_MESSAGE findValueByNumber(int number) {
              return DOTA_PARTICLE_MESSAGE.valueOf(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      return getDescriptor().getValues().get(index);
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.getDescriptor().getEnumTypes().get(7);
    }

    private static final DOTA_PARTICLE_MESSAGE[] VALUES = values();

    public static DOTA_PARTICLE_MESSAGE valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      return VALUES[desc.getIndex()];
    }

    private final int index;
    private final int value;

    private DOTA_PARTICLE_MESSAGE(int index, int value) {
      this.index = index;
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:DOTA_PARTICLE_MESSAGE)
  }

  /**
   * Protobuf enum {@code DOTA_OVERHEAD_ALERT}
   */
  public enum DOTA_OVERHEAD_ALERT
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * OVERHEAD_ALERT_GOLD = 0;
     */
    OVERHEAD_ALERT_GOLD(0, 0),
    /**
     * OVERHEAD_ALERT_DENY = 1;
     */
    OVERHEAD_ALERT_DENY(1, 1),
    /**
     * OVERHEAD_ALERT_CRITICAL = 2;
     */
    OVERHEAD_ALERT_CRITICAL(2, 2),
    /**
     * OVERHEAD_ALERT_XP = 3;
     */
    OVERHEAD_ALERT_XP(3, 3),
    /**
     * OVERHEAD_ALERT_BONUS_SPELL_DAMAGE = 4;
     */
    OVERHEAD_ALERT_BONUS_SPELL_DAMAGE(4, 4),
    /**
     * OVERHEAD_ALERT_MISS = 5;
     */
    OVERHEAD_ALERT_MISS(5, 5),
    /**
     * OVERHEAD_ALERT_DAMAGE = 6;
     */
    OVERHEAD_ALERT_DAMAGE(6, 6),
    /**
     * OVERHEAD_ALERT_EVADE = 7;
     */
    OVERHEAD_ALERT_EVADE(7, 7),
    /**
     * OVERHEAD_ALERT_BLOCK = 8;
     */
    OVERHEAD_ALERT_BLOCK(8, 8),
    /**
     * OVERHEAD_ALERT_BONUS_POISON_DAMAGE = 9;
     */
    OVERHEAD_ALERT_BONUS_POISON_DAMAGE(9, 9),
    /**
     * OVERHEAD_ALERT_HEAL = 10;
     */
    OVERHEAD_ALERT_HEAL(10, 10),
    /**
     * OVERHEAD_ALERT_MANA_ADD = 11;
     */
    OVERHEAD_ALERT_MANA_ADD(11, 11),
    /**
     * OVERHEAD_ALERT_MANA_LOSS = 12;
     */
    OVERHEAD_ALERT_MANA_LOSS(12, 12),
    /**
     * OVERHEAD_ALERT_LAST_HIT_EARLY = 13;
     */
    OVERHEAD_ALERT_LAST_HIT_EARLY(13, 13),
    /**
     * OVERHEAD_ALERT_LAST_HIT_CLOSE = 14;
     */
    OVERHEAD_ALERT_LAST_HIT_CLOSE(14, 14),
    /**
     * OVERHEAD_ALERT_LAST_HIT_MISS = 15;
     */
    OVERHEAD_ALERT_LAST_HIT_MISS(15, 15),
    /**
     * OVERHEAD_ALERT_MAGICAL_BLOCK = 16;
     */
    OVERHEAD_ALERT_MAGICAL_BLOCK(16, 16),
    /**
     * OVERHEAD_ALERT_INCOMING_DAMAGE = 17;
     */
    OVERHEAD_ALERT_INCOMING_DAMAGE(17, 17),
    /**
     * OVERHEAD_ALERT_OUTGOING_DAMAGE = 18;
     */
    OVERHEAD_ALERT_OUTGOING_DAMAGE(18, 18),
    /**
     * OVERHEAD_ALERT_DISABLE_RESIST = 19;
     */
    OVERHEAD_ALERT_DISABLE_RESIST(19, 19),
    /**
     * OVERHEAD_ALERT_DEATH = 20;
     */
    OVERHEAD_ALERT_DEATH(20, 20),
    /**
     * OVERHEAD_ALERT_BLOCKED = 21;
     */
    OVERHEAD_ALERT_BLOCKED(21, 21),
    /**
     * OVERHEAD_ALERT_ITEM_RECEIVED = 22;
     */
    OVERHEAD_ALERT_ITEM_RECEIVED(22, 22),
    /**
     * OVERHEAD_ALERT_SHARD = 23;
     */
    OVERHEAD_ALERT_SHARD(23, 23),
    /**
     * OVERHEAD_ALERT_DEADLY_BLOW = 24;
     */
    OVERHEAD_ALERT_DEADLY_BLOW(24, 24),
    ;

    /**
     * OVERHEAD_ALERT_GOLD = 0;
     */
    public static final int OVERHEAD_ALERT_GOLD_VALUE = 0;
    /**
     * OVERHEAD_ALERT_DENY = 1;
     */
    public static final int OVERHEAD_ALERT_DENY_VALUE = 1;
    /**
     * OVERHEAD_ALERT_CRITICAL = 2;
     */
    public static final int OVERHEAD_ALERT_CRITICAL_VALUE = 2;
    /**
     * OVERHEAD_ALERT_XP = 3;
     */
    public static final int OVERHEAD_ALERT_XP_VALUE = 3;
    /**
     * OVERHEAD_ALERT_BONUS_SPELL_DAMAGE = 4;
     */
    public static final int OVERHEAD_ALERT_BONUS_SPELL_DAMAGE_VALUE = 4;
    /**
     * OVERHEAD_ALERT_MISS = 5;
     */
    public static final int OVERHEAD_ALERT_MISS_VALUE = 5;
    /**
     * OVERHEAD_ALERT_DAMAGE = 6;
     */
    public static final int OVERHEAD_ALERT_DAMAGE_VALUE = 6;
    /**
     * OVERHEAD_ALERT_EVADE = 7;
     */
    public static final int OVERHEAD_ALERT_EVADE_VALUE = 7;
    /**
     * OVERHEAD_ALERT_BLOCK = 8;
     */
    public static final int OVERHEAD_ALERT_BLOCK_VALUE = 8;
    /**
     * OVERHEAD_ALERT_BONUS_POISON_DAMAGE = 9;
     */
    public static final int OVERHEAD_ALERT_BONUS_POISON_DAMAGE_VALUE = 9;
    /**
     * OVERHEAD_ALERT_HEAL = 10;
     */
    public static final int OVERHEAD_ALERT_HEAL_VALUE = 10;
    /**
     * OVERHEAD_ALERT_MANA_ADD = 11;
     */
    public static final int OVERHEAD_ALERT_MANA_ADD_VALUE = 11;
    /**
     * OVERHEAD_ALERT_MANA_LOSS = 12;
     */
    public static final int OVERHEAD_ALERT_MANA_LOSS_VALUE = 12;
    /**
     * OVERHEAD_ALERT_LAST_HIT_EARLY = 13;
     */
    public static final int OVERHEAD_ALERT_LAST_HIT_EARLY_VALUE = 13;
    /**
     * OVERHEAD_ALERT_LAST_HIT_CLOSE = 14;
     */
    public static final int OVERHEAD_ALERT_LAST_HIT_CLOSE_VALUE = 14;
    /**
     * OVERHEAD_ALERT_LAST_HIT_MISS = 15;
     */
    public static final int OVERHEAD_ALERT_LAST_HIT_MISS_VALUE = 15;
    /**
     * OVERHEAD_ALERT_MAGICAL_BLOCK = 16;
     */
    public static final int OVERHEAD_ALERT_MAGICAL_BLOCK_VALUE = 16;
    /**
     * OVERHEAD_ALERT_INCOMING_DAMAGE = 17;
     */
    public static final int OVERHEAD_ALERT_INCOMING_DAMAGE_VALUE = 17;
    /**
     * OVERHEAD_ALERT_OUTGOING_DAMAGE = 18;
     */
    public static final int OVERHEAD_ALERT_OUTGOING_DAMAGE_VALUE = 18;
    /**
     * OVERHEAD_ALERT_DISABLE_RESIST = 19;
     */
    public static final int OVERHEAD_ALERT_DISABLE_RESIST_VALUE = 19;
    /**
     * OVERHEAD_ALERT_DEATH = 20;
     */
    public static final int OVERHEAD_ALERT_DEATH_VALUE = 20;
    /**
     * OVERHEAD_ALERT_BLOCKED = 21;
     */
    public static final int OVERHEAD_ALERT_BLOCKED_VALUE = 21;
    /**
     * OVERHEAD_ALERT_ITEM_RECEIVED = 22;
     */
    public static final int OVERHEAD_ALERT_ITEM_RECEIVED_VALUE = 22;
    /**
     * OVERHEAD_ALERT_SHARD = 23;
     */
    public static final int OVERHEAD_ALERT_SHARD_VALUE = 23;
    /**
     * OVERHEAD_ALERT_DEADLY_BLOW = 24;
     */
    public static final int OVERHEAD_ALERT_DEADLY_BLOW_VALUE = 24;


    public final int getNumber() { return value; }

    public static DOTA_OVERHEAD_ALERT valueOf(int value) {
      switch (value) {
        case 0: return OVERHEAD_ALERT_GOLD;
        case 1: return OVERHEAD_ALERT_DENY;
        case 2: return OVERHEAD_ALERT_CRITICAL;
        case 3: return OVERHEAD_ALERT_XP;
        case 4: return OVERHEAD_ALERT_BONUS_SPELL_DAMAGE;
        case 5: return OVERHEAD_ALERT_MISS;
        case 6: return OVERHEAD_ALERT_DAMAGE;
        case 7: return OVERHEAD_ALERT_EVADE;
        case 8: return OVERHEAD_ALERT_BLOCK;
        case 9: return OVERHEAD_ALERT_BONUS_POISON_DAMAGE;
        case 10: return OVERHEAD_ALERT_HEAL;
        case 11: return OVERHEAD_ALERT_MANA_ADD;
        case 12: return OVERHEAD_ALERT_MANA_LOSS;
        case 13: return OVERHEAD_ALERT_LAST_HIT_EARLY;
        case 14: return OVERHEAD_ALERT_LAST_HIT_CLOSE;
        case 15: return OVERHEAD_ALERT_LAST_HIT_MISS;
        case 16: return OVERHEAD_ALERT_MAGICAL_BLOCK;
        case 17: return OVERHEAD_ALERT_INCOMING_DAMAGE;
        case 18: return OVERHEAD_ALERT_OUTGOING_DAMAGE;
        case 19: return OVERHEAD_ALERT_DISABLE_RESIST;
        case 20: return OVERHEAD_ALERT_DEATH;
        case 21: return OVERHEAD_ALERT_BLOCKED;
        case 22: return OVERHEAD_ALERT_ITEM_RECEIVED;
        case 23: return OVERHEAD_ALERT_SHARD;
        case 24: return OVERHEAD_ALERT_DEADLY_BLOW;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap
        internalGetValueMap() {
      return internalValueMap;
    }
    private static com.google.protobuf.Internal.EnumLiteMap
        internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap() {
            public DOTA_OVERHEAD_ALERT findValueByNumber(int number) {
              return DOTA_OVERHEAD_ALERT.valueOf(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      return getDescriptor().getValues().get(index);
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.getDescriptor().getEnumTypes().get(8);
    }

    private static final DOTA_OVERHEAD_ALERT[] VALUES = values();

    public static DOTA_OVERHEAD_ALERT valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      return VALUES[desc.getIndex()];
    }

    private final int index;
    private final int value;

    private DOTA_OVERHEAD_ALERT(int index, int value) {
      this.index = index;
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:DOTA_OVERHEAD_ALERT)
  }

  /**
   * Protobuf enum {@code DOTA_ROSHAN_PHASE}
   */
  public enum DOTA_ROSHAN_PHASE
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * k_SRSP_ROSHAN_ALIVE = 0;
     */
    k_SRSP_ROSHAN_ALIVE(0, 0),
    /**
     * k_SRSP_ROSHAN_BASE_TIMER = 1;
     */
    k_SRSP_ROSHAN_BASE_TIMER(1, 1),
    /**
     * k_SRSP_ROSHAN_VISIBLE_TIMER = 2;
     */
    k_SRSP_ROSHAN_VISIBLE_TIMER(2, 2),
    ;

    /**
     * k_SRSP_ROSHAN_ALIVE = 0;
     */
    public static final int k_SRSP_ROSHAN_ALIVE_VALUE = 0;
    /**
     * k_SRSP_ROSHAN_BASE_TIMER = 1;
     */
    public static final int k_SRSP_ROSHAN_BASE_TIMER_VALUE = 1;
    /**
     * k_SRSP_ROSHAN_VISIBLE_TIMER = 2;
     */
    public static final int k_SRSP_ROSHAN_VISIBLE_TIMER_VALUE = 2;


    public final int getNumber() { return value; }

    public static DOTA_ROSHAN_PHASE valueOf(int value) {
      switch (value) {
        case 0: return k_SRSP_ROSHAN_ALIVE;
        case 1: return k_SRSP_ROSHAN_BASE_TIMER;
        case 2: return k_SRSP_ROSHAN_VISIBLE_TIMER;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap
        internalGetValueMap() {
      return internalValueMap;
    }
    private static com.google.protobuf.Internal.EnumLiteMap
        internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap() {
            public DOTA_ROSHAN_PHASE findValueByNumber(int number) {
              return DOTA_ROSHAN_PHASE.valueOf(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      return getDescriptor().getValues().get(index);
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.getDescriptor().getEnumTypes().get(9);
    }

    private static final DOTA_ROSHAN_PHASE[] VALUES = values();

    public static DOTA_ROSHAN_PHASE valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      return VALUES[desc.getIndex()];
    }

    private final int index;
    private final int value;

    private DOTA_ROSHAN_PHASE(int index, int value) {
      this.index = index;
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:DOTA_ROSHAN_PHASE)
  }

  /**
   * Protobuf enum {@code DOTA_POSITION_CATEGORY}
   */
  public enum DOTA_POSITION_CATEGORY
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * DOTA_POSITION_NONE = 0;
     */
    DOTA_POSITION_NONE(0, 0),
    /**
     * DOTA_POSITION_BOTTOM_LANE = 1;
     */
    DOTA_POSITION_BOTTOM_LANE(1, 1),
    /**
     * DOTA_POSITION_MID_LANE = 2;
     */
    DOTA_POSITION_MID_LANE(2, 2),
    /**
     * DOTA_POSITION_TOP_LANE = 3;
     */
    DOTA_POSITION_TOP_LANE(3, 3),
    /**
     * DOTA_POSITION_RADIANT_JUNGLE = 4;
     */
    DOTA_POSITION_RADIANT_JUNGLE(4, 4),
    /**
     * DOTA_POSITION_DIRE_JUNGLE = 5;
     */
    DOTA_POSITION_DIRE_JUNGLE(5, 5),
    /**
     * DOTA_POSITION_RADIANT_ANCIENTS = 6;
     */
    DOTA_POSITION_RADIANT_ANCIENTS(6, 6),
    /**
     * DOTA_POSITION_DIRE_ANCIENTS = 7;
     */
    DOTA_POSITION_DIRE_ANCIENTS(7, 7),
    /**
     * DOTA_POSITION_RADIANT_SECRET_SHOP = 8;
     */
    DOTA_POSITION_RADIANT_SECRET_SHOP(8, 8),
    /**
     * DOTA_POSITION_DIRE_SECRET_SHOP = 9;
     */
    DOTA_POSITION_DIRE_SECRET_SHOP(9, 9),
    /**
     * DOTA_POSITION_RIVER = 10;
     */
    DOTA_POSITION_RIVER(10, 10),
    /**
     * DOTA_POSITION_ROSHAN_PIT = 11;
     */
    DOTA_POSITION_ROSHAN_PIT(11, 11),
    /**
     * DOTA_POSITION_RADIANT_BASE = 12;
     */
    DOTA_POSITION_RADIANT_BASE(12, 12),
    /**
     * DOTA_POSITION_DIRE_BASE = 13;
     */
    DOTA_POSITION_DIRE_BASE(13, 13),
    /**
     * DOTA_POSITION_FOUNTAIN = 14;
     */
    DOTA_POSITION_FOUNTAIN(14, 14),
    /**
     * DOTA_POSITION_OTHER = 15;
     */
    DOTA_POSITION_OTHER(15, 15),
    ;

    /**
     * DOTA_POSITION_NONE = 0;
     */
    public static final int DOTA_POSITION_NONE_VALUE = 0;
    /**
     * DOTA_POSITION_BOTTOM_LANE = 1;
     */
    public static final int DOTA_POSITION_BOTTOM_LANE_VALUE = 1;
    /**
     * DOTA_POSITION_MID_LANE = 2;
     */
    public static final int DOTA_POSITION_MID_LANE_VALUE = 2;
    /**
     * DOTA_POSITION_TOP_LANE = 3;
     */
    public static final int DOTA_POSITION_TOP_LANE_VALUE = 3;
    /**
     * DOTA_POSITION_RADIANT_JUNGLE = 4;
     */
    public static final int DOTA_POSITION_RADIANT_JUNGLE_VALUE = 4;
    /**
     * DOTA_POSITION_DIRE_JUNGLE = 5;
     */
    public static final int DOTA_POSITION_DIRE_JUNGLE_VALUE = 5;
    /**
     * DOTA_POSITION_RADIANT_ANCIENTS = 6;
     */
    public static final int DOTA_POSITION_RADIANT_ANCIENTS_VALUE = 6;
    /**
     * DOTA_POSITION_DIRE_ANCIENTS = 7;
     */
    public static final int DOTA_POSITION_DIRE_ANCIENTS_VALUE = 7;
    /**
     * DOTA_POSITION_RADIANT_SECRET_SHOP = 8;
     */
    public static final int DOTA_POSITION_RADIANT_SECRET_SHOP_VALUE = 8;
    /**
     * DOTA_POSITION_DIRE_SECRET_SHOP = 9;
     */
    public static final int DOTA_POSITION_DIRE_SECRET_SHOP_VALUE = 9;
    /**
     * DOTA_POSITION_RIVER = 10;
     */
    public static final int DOTA_POSITION_RIVER_VALUE = 10;
    /**
     * DOTA_POSITION_ROSHAN_PIT = 11;
     */
    public static final int DOTA_POSITION_ROSHAN_PIT_VALUE = 11;
    /**
     * DOTA_POSITION_RADIANT_BASE = 12;
     */
    public static final int DOTA_POSITION_RADIANT_BASE_VALUE = 12;
    /**
     * DOTA_POSITION_DIRE_BASE = 13;
     */
    public static final int DOTA_POSITION_DIRE_BASE_VALUE = 13;
    /**
     * DOTA_POSITION_FOUNTAIN = 14;
     */
    public static final int DOTA_POSITION_FOUNTAIN_VALUE = 14;
    /**
     * DOTA_POSITION_OTHER = 15;
     */
    public static final int DOTA_POSITION_OTHER_VALUE = 15;


    public final int getNumber() { return value; }

    public static DOTA_POSITION_CATEGORY valueOf(int value) {
      switch (value) {
        case 0: return DOTA_POSITION_NONE;
        case 1: return DOTA_POSITION_BOTTOM_LANE;
        case 2: return DOTA_POSITION_MID_LANE;
        case 3: return DOTA_POSITION_TOP_LANE;
        case 4: return DOTA_POSITION_RADIANT_JUNGLE;
        case 5: return DOTA_POSITION_DIRE_JUNGLE;
        case 6: return DOTA_POSITION_RADIANT_ANCIENTS;
        case 7: return DOTA_POSITION_DIRE_ANCIENTS;
        case 8: return DOTA_POSITION_RADIANT_SECRET_SHOP;
        case 9: return DOTA_POSITION_DIRE_SECRET_SHOP;
        case 10: return DOTA_POSITION_RIVER;
        case 11: return DOTA_POSITION_ROSHAN_PIT;
        case 12: return DOTA_POSITION_RADIANT_BASE;
        case 13: return DOTA_POSITION_DIRE_BASE;
        case 14: return DOTA_POSITION_FOUNTAIN;
        case 15: return DOTA_POSITION_OTHER;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap
        internalGetValueMap() {
      return internalValueMap;
    }
    private static com.google.protobuf.Internal.EnumLiteMap
        internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap() {
            public DOTA_POSITION_CATEGORY findValueByNumber(int number) {
              return DOTA_POSITION_CATEGORY.valueOf(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      return getDescriptor().getValues().get(index);
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.getDescriptor().getEnumTypes().get(10);
    }

    private static final DOTA_POSITION_CATEGORY[] VALUES = values();

    public static DOTA_POSITION_CATEGORY valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      return VALUES[desc.getIndex()];
    }

    private final int index;
    private final int value;

    private DOTA_POSITION_CATEGORY(int index, int value) {
      this.index = index;
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:DOTA_POSITION_CATEGORY)
  }

  /**
   * Protobuf enum {@code DOTA_ABILITY_TARGET_TYPE}
   */
  public enum DOTA_ABILITY_TARGET_TYPE
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * DOTA_ABILITY_TARGET_NONE = 0;
     */
    DOTA_ABILITY_TARGET_NONE(0, 0),
    /**
     * DOTA_ABILITY_TARGET_SELF = 1;
     */
    DOTA_ABILITY_TARGET_SELF(1, 1),
    /**
     * DOTA_ABILITY_TARGET_ALLY_HERO = 2;
     */
    DOTA_ABILITY_TARGET_ALLY_HERO(2, 2),
    /**
     * DOTA_ABILITY_TARGET_ALLY_CREEP = 3;
     */
    DOTA_ABILITY_TARGET_ALLY_CREEP(3, 3),
    /**
     * DOTA_ABILITY_TARGET_ENEMY_HERO = 4;
     */
    DOTA_ABILITY_TARGET_ENEMY_HERO(4, 4),
    /**
     * DOTA_ABILITY_TARGET_ENEMY_CREEP = 5;
     */
    DOTA_ABILITY_TARGET_ENEMY_CREEP(5, 5),
    ;

    /**
     * DOTA_ABILITY_TARGET_NONE = 0;
     */
    public static final int DOTA_ABILITY_TARGET_NONE_VALUE = 0;
    /**
     * DOTA_ABILITY_TARGET_SELF = 1;
     */
    public static final int DOTA_ABILITY_TARGET_SELF_VALUE = 1;
    /**
     * DOTA_ABILITY_TARGET_ALLY_HERO = 2;
     */
    public static final int DOTA_ABILITY_TARGET_ALLY_HERO_VALUE = 2;
    /**
     * DOTA_ABILITY_TARGET_ALLY_CREEP = 3;
     */
    public static final int DOTA_ABILITY_TARGET_ALLY_CREEP_VALUE = 3;
    /**
     * DOTA_ABILITY_TARGET_ENEMY_HERO = 4;
     */
    public static final int DOTA_ABILITY_TARGET_ENEMY_HERO_VALUE = 4;
    /**
     * DOTA_ABILITY_TARGET_ENEMY_CREEP = 5;
     */
    public static final int DOTA_ABILITY_TARGET_ENEMY_CREEP_VALUE = 5;


    public final int getNumber() { return value; }

    public static DOTA_ABILITY_TARGET_TYPE valueOf(int value) {
      switch (value) {
        case 0: return DOTA_ABILITY_TARGET_NONE;
        case 1: return DOTA_ABILITY_TARGET_SELF;
        case 2: return DOTA_ABILITY_TARGET_ALLY_HERO;
        case 3: return DOTA_ABILITY_TARGET_ALLY_CREEP;
        case 4: return DOTA_ABILITY_TARGET_ENEMY_HERO;
        case 5: return DOTA_ABILITY_TARGET_ENEMY_CREEP;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap
        internalGetValueMap() {
      return internalValueMap;
    }
    private static com.google.protobuf.Internal.EnumLiteMap
        internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap() {
            public DOTA_ABILITY_TARGET_TYPE findValueByNumber(int number) {
              return DOTA_ABILITY_TARGET_TYPE.valueOf(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      return getDescriptor().getValues().get(index);
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.getDescriptor().getEnumTypes().get(11);
    }

    private static final DOTA_ABILITY_TARGET_TYPE[] VALUES = values();

    public static DOTA_ABILITY_TARGET_TYPE valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      return VALUES[desc.getIndex()];
    }

    private final int index;
    private final int value;

    private DOTA_ABILITY_TARGET_TYPE(int index, int value) {
      this.index = index;
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:DOTA_ABILITY_TARGET_TYPE)
  }

  /**
   * Protobuf enum {@code EHeroStatType}
   */
  public enum EHeroStatType
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * k_EHeroStatType_None = 0;
     */
    k_EHeroStatType_None(0, 0),
    /**
     * k_EHeroStatType_AxeTotalDamage = 2000;
     */
    k_EHeroStatType_AxeTotalDamage(1, 2000),
    /**
     * k_EHeroStatType_BattleHungerDamage = 2001;
     */
    k_EHeroStatType_BattleHungerDamage(2, 2001),
    /**
     * k_EHeroStatType_CounterHelixDamage = 2002;
     */
    k_EHeroStatType_CounterHelixDamage(3, 2002),
    /**
     * k_EHeroStatType_CullingBladeDamage = 2003;
     */
    k_EHeroStatType_CullingBladeDamage(4, 2003),
    /**
     * k_EHeroStatType_BerserkersCallCastCount = 2004;
     */
    k_EHeroStatType_BerserkersCallCastCount(5, 2004),
    /**
     * k_EHeroStatType_BerserkersCallHeroesHitAverage = 2005;
     */
    k_EHeroStatType_BerserkersCallHeroesHitAverage(6, 2005),
    /**
     * k_EHeroStatType_BerserkersCallOtherUnitsHit = 2006;
     */
    k_EHeroStatType_BerserkersCallOtherUnitsHit(7, 2006),
    /**
     * k_EHeroStatType_BerserkersCallHeroAttacksTaken = 2007;
     */
    k_EHeroStatType_BerserkersCallHeroAttacksTaken(8, 2007),
    /**
     * k_EHeroStatType_BerserkersCallOtherAttacksTaken = 2008;
     */
    k_EHeroStatType_BerserkersCallOtherAttacksTaken(9, 2008),
    /**
     * k_EHeroStatType_BattleHungerCastCount = 2009;
     */
    k_EHeroStatType_BattleHungerCastCount(10, 2009),
    /**
     * k_EHeroStatType_BattleHungerPotentialDuration = 2010;
     */
    k_EHeroStatType_BattleHungerPotentialDuration(11, 2010),
    /**
     * k_EHeroStatType_BattleHungerAverageDuration = 2011;
     */
    k_EHeroStatType_BattleHungerAverageDuration(12, 2011),
    /**
     * k_EHeroStatType_CounterHelixProcCount = 2012;
     */
    k_EHeroStatType_CounterHelixProcCount(13, 2012),
    /**
     * k_EHeroStatType_CounterHelixHeroProcCount = 2013;
     */
    k_EHeroStatType_CounterHelixHeroProcCount(14, 2013),
    /**
     * k_EHeroStatType_CounterHelixHeroesHitAverage = 2014;
     */
    k_EHeroStatType_CounterHelixHeroesHitAverage(15, 2014),
    /**
     * k_EHeroStatType_CounterHelixOtherUnitsHitCount = 2015;
     */
    k_EHeroStatType_CounterHelixOtherUnitsHitCount(16, 2015),
    /**
     * k_EHeroStatType_CullingBladeCastCount = 2016;
     */
    k_EHeroStatType_CullingBladeCastCount(17, 2016),
    /**
     * k_EHeroStatType_CullingBladeKillCount = 2017;
     */
    k_EHeroStatType_CullingBladeKillCount(18, 2017),
    /**
     * k_EHeroStatType_CullingBladeAverageHealthCulled = 2018;
     */
    k_EHeroStatType_CullingBladeAverageHealthCulled(19, 2018),
    /**
     * k_EHeroStatType_CullingBladeAverageDamageAvailable = 2019;
     */
    k_EHeroStatType_CullingBladeAverageDamageAvailable(20, 2019),
    /**
     * k_EHeroStatType_CullingBladeHeroBuffAverage = 2020;
     */
    k_EHeroStatType_CullingBladeHeroBuffAverage(21, 2020),
    ;

    /**
     * k_EHeroStatType_None = 0;
     */
    public static final int k_EHeroStatType_None_VALUE = 0;
    /**
     * k_EHeroStatType_AxeTotalDamage = 2000;
     */
    public static final int k_EHeroStatType_AxeTotalDamage_VALUE = 2000;
    /**
     * k_EHeroStatType_BattleHungerDamage = 2001;
     */
    public static final int k_EHeroStatType_BattleHungerDamage_VALUE = 2001;
    /**
     * k_EHeroStatType_CounterHelixDamage = 2002;
     */
    public static final int k_EHeroStatType_CounterHelixDamage_VALUE = 2002;
    /**
     * k_EHeroStatType_CullingBladeDamage = 2003;
     */
    public static final int k_EHeroStatType_CullingBladeDamage_VALUE = 2003;
    /**
     * k_EHeroStatType_BerserkersCallCastCount = 2004;
     */
    public static final int k_EHeroStatType_BerserkersCallCastCount_VALUE = 2004;
    /**
     * k_EHeroStatType_BerserkersCallHeroesHitAverage = 2005;
     */
    public static final int k_EHeroStatType_BerserkersCallHeroesHitAverage_VALUE = 2005;
    /**
     * k_EHeroStatType_BerserkersCallOtherUnitsHit = 2006;
     */
    public static final int k_EHeroStatType_BerserkersCallOtherUnitsHit_VALUE = 2006;
    /**
     * k_EHeroStatType_BerserkersCallHeroAttacksTaken = 2007;
     */
    public static final int k_EHeroStatType_BerserkersCallHeroAttacksTaken_VALUE = 2007;
    /**
     * k_EHeroStatType_BerserkersCallOtherAttacksTaken = 2008;
     */
    public static final int k_EHeroStatType_BerserkersCallOtherAttacksTaken_VALUE = 2008;
    /**
     * k_EHeroStatType_BattleHungerCastCount = 2009;
     */
    public static final int k_EHeroStatType_BattleHungerCastCount_VALUE = 2009;
    /**
     * k_EHeroStatType_BattleHungerPotentialDuration = 2010;
     */
    public static final int k_EHeroStatType_BattleHungerPotentialDuration_VALUE = 2010;
    /**
     * k_EHeroStatType_BattleHungerAverageDuration = 2011;
     */
    public static final int k_EHeroStatType_BattleHungerAverageDuration_VALUE = 2011;
    /**
     * k_EHeroStatType_CounterHelixProcCount = 2012;
     */
    public static final int k_EHeroStatType_CounterHelixProcCount_VALUE = 2012;
    /**
     * k_EHeroStatType_CounterHelixHeroProcCount = 2013;
     */
    public static final int k_EHeroStatType_CounterHelixHeroProcCount_VALUE = 2013;
    /**
     * k_EHeroStatType_CounterHelixHeroesHitAverage = 2014;
     */
    public static final int k_EHeroStatType_CounterHelixHeroesHitAverage_VALUE = 2014;
    /**
     * k_EHeroStatType_CounterHelixOtherUnitsHitCount = 2015;
     */
    public static final int k_EHeroStatType_CounterHelixOtherUnitsHitCount_VALUE = 2015;
    /**
     * k_EHeroStatType_CullingBladeCastCount = 2016;
     */
    public static final int k_EHeroStatType_CullingBladeCastCount_VALUE = 2016;
    /**
     * k_EHeroStatType_CullingBladeKillCount = 2017;
     */
    public static final int k_EHeroStatType_CullingBladeKillCount_VALUE = 2017;
    /**
     * k_EHeroStatType_CullingBladeAverageHealthCulled = 2018;
     */
    public static final int k_EHeroStatType_CullingBladeAverageHealthCulled_VALUE = 2018;
    /**
     * k_EHeroStatType_CullingBladeAverageDamageAvailable = 2019;
     */
    public static final int k_EHeroStatType_CullingBladeAverageDamageAvailable_VALUE = 2019;
    /**
     * k_EHeroStatType_CullingBladeHeroBuffAverage = 2020;
     */
    public static final int k_EHeroStatType_CullingBladeHeroBuffAverage_VALUE = 2020;


    public final int getNumber() { return value; }

    public static EHeroStatType valueOf(int value) {
      switch (value) {
        case 0: return k_EHeroStatType_None;
        case 2000: return k_EHeroStatType_AxeTotalDamage;
        case 2001: return k_EHeroStatType_BattleHungerDamage;
        case 2002: return k_EHeroStatType_CounterHelixDamage;
        case 2003: return k_EHeroStatType_CullingBladeDamage;
        case 2004: return k_EHeroStatType_BerserkersCallCastCount;
        case 2005: return k_EHeroStatType_BerserkersCallHeroesHitAverage;
        case 2006: return k_EHeroStatType_BerserkersCallOtherUnitsHit;
        case 2007: return k_EHeroStatType_BerserkersCallHeroAttacksTaken;
        case 2008: return k_EHeroStatType_BerserkersCallOtherAttacksTaken;
        case 2009: return k_EHeroStatType_BattleHungerCastCount;
        case 2010: return k_EHeroStatType_BattleHungerPotentialDuration;
        case 2011: return k_EHeroStatType_BattleHungerAverageDuration;
        case 2012: return k_EHeroStatType_CounterHelixProcCount;
        case 2013: return k_EHeroStatType_CounterHelixHeroProcCount;
        case 2014: return k_EHeroStatType_CounterHelixHeroesHitAverage;
        case 2015: return k_EHeroStatType_CounterHelixOtherUnitsHitCount;
        case 2016: return k_EHeroStatType_CullingBladeCastCount;
        case 2017: return k_EHeroStatType_CullingBladeKillCount;
        case 2018: return k_EHeroStatType_CullingBladeAverageHealthCulled;
        case 2019: return k_EHeroStatType_CullingBladeAverageDamageAvailable;
        case 2020: return k_EHeroStatType_CullingBladeHeroBuffAverage;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap
        internalGetValueMap() {
      return internalValueMap;
    }
    private static com.google.protobuf.Internal.EnumLiteMap
        internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap() {
            public EHeroStatType findValueByNumber(int number) {
              return EHeroStatType.valueOf(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      return getDescriptor().getValues().get(index);
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.getDescriptor().getEnumTypes().get(12);
    }

    private static final EHeroStatType[] VALUES = values();

    public static EHeroStatType valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      return VALUES[desc.getIndex()];
    }

    private final int index;
    private final int value;

    private EHeroStatType(int index, int value) {
      this.index = index;
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:EHeroStatType)
  }

  /**
   * Protobuf enum {@code EPlayerVoiceListenState}
   */
  public enum EPlayerVoiceListenState
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * kPVLS_None = 0;
     */
    kPVLS_None(0, 0),
    /**
     * kPVLS_DeniedChatBanned = 1;
     */
    kPVLS_DeniedChatBanned(1, 1),
    /**
     * kPVLS_DeniedPartner = 2;
     */
    kPVLS_DeniedPartner(2, 2),
    /**
     * kPVLS_DeniedHLTVTalkerNotSpectator = 3;
     */
    kPVLS_DeniedHLTVTalkerNotSpectator(3, 3),
    /**
     * kPVLS_DeniedHLTVNoTalkerPlayerID = 4;
     */
    kPVLS_DeniedHLTVNoTalkerPlayerID(4, 4),
    /**
     * kPVLS_DeniedHLTVTalkerNotBroadcaster = 5;
     */
    kPVLS_DeniedHLTVTalkerNotBroadcaster(5, 5),
    /**
     * kPVLS_DeniedTeamSpectator = 6;
     */
    kPVLS_DeniedTeamSpectator(6, 6),
    /**
     * kPVLS_DeniedStudent = 8;
     */
    kPVLS_DeniedStudent(7, 8),
    /**
     * kPVLS_DeniedPrivateCoach = 9;
     */
    kPVLS_DeniedPrivateCoach(8, 9),
    /**
     * kPVLS_Denied = 64;
     */
    kPVLS_Denied(9, 64),
    /**
     * kPVLS_AllowHLTVTalkerIsBroadcaster = 65;
     */
    kPVLS_AllowHLTVTalkerIsBroadcaster(10, 65),
    /**
     * kPVLS_AllowCoBroadcaster = 66;
     */
    kPVLS_AllowCoBroadcaster(11, 66),
    /**
     * kPVLS_AllowAllChat = 67;
     */
    kPVLS_AllowAllChat(12, 67),
    /**
     * kPVLS_AllowStudentToCoach = 68;
     */
    kPVLS_AllowStudentToCoach(13, 68),
    /**
     * kPVLS_AllowFellowStudent = 69;
     */
    kPVLS_AllowFellowStudent(14, 69),
    /**
     * kPVLS_AllowTalkerIsCoach = 70;
     */
    kPVLS_AllowTalkerIsCoach(15, 70),
    /**
     * kPVLS_AllowCoachHearTeam = 71;
     */
    kPVLS_AllowCoachHearTeam(16, 71),
    /**
     * kPVLS_AllowSameTeam = 72;
     */
    kPVLS_AllowSameTeam(17, 72),
    /**
     * kPVLS_AllowShowcase = 73;
     */
    kPVLS_AllowShowcase(18, 73),
    /**
     * kPVLS_AllowPrivateCoach = 74;
     */
    kPVLS_AllowPrivateCoach(19, 74),
    ;

    /**
     * kPVLS_None = 0;
     */
    public static final int kPVLS_None_VALUE = 0;
    /**
     * kPVLS_DeniedChatBanned = 1;
     */
    public static final int kPVLS_DeniedChatBanned_VALUE = 1;
    /**
     * kPVLS_DeniedPartner = 2;
     */
    public static final int kPVLS_DeniedPartner_VALUE = 2;
    /**
     * kPVLS_DeniedHLTVTalkerNotSpectator = 3;
     */
    public static final int kPVLS_DeniedHLTVTalkerNotSpectator_VALUE = 3;
    /**
     * kPVLS_DeniedHLTVNoTalkerPlayerID = 4;
     */
    public static final int kPVLS_DeniedHLTVNoTalkerPlayerID_VALUE = 4;
    /**
     * kPVLS_DeniedHLTVTalkerNotBroadcaster = 5;
     */
    public static final int kPVLS_DeniedHLTVTalkerNotBroadcaster_VALUE = 5;
    /**
     * kPVLS_DeniedTeamSpectator = 6;
     */
    public static final int kPVLS_DeniedTeamSpectator_VALUE = 6;
    /**
     * kPVLS_DeniedStudent = 8;
     */
    public static final int kPVLS_DeniedStudent_VALUE = 8;
    /**
     * kPVLS_DeniedPrivateCoach = 9;
     */
    public static final int kPVLS_DeniedPrivateCoach_VALUE = 9;
    /**
     * kPVLS_Denied = 64;
     */
    public static final int kPVLS_Denied_VALUE = 64;
    /**
     * kPVLS_AllowHLTVTalkerIsBroadcaster = 65;
     */
    public static final int kPVLS_AllowHLTVTalkerIsBroadcaster_VALUE = 65;
    /**
     * kPVLS_AllowCoBroadcaster = 66;
     */
    public static final int kPVLS_AllowCoBroadcaster_VALUE = 66;
    /**
     * kPVLS_AllowAllChat = 67;
     */
    public static final int kPVLS_AllowAllChat_VALUE = 67;
    /**
     * kPVLS_AllowStudentToCoach = 68;
     */
    public static final int kPVLS_AllowStudentToCoach_VALUE = 68;
    /**
     * kPVLS_AllowFellowStudent = 69;
     */
    public static final int kPVLS_AllowFellowStudent_VALUE = 69;
    /**
     * kPVLS_AllowTalkerIsCoach = 70;
     */
    public static final int kPVLS_AllowTalkerIsCoach_VALUE = 70;
    /**
     * kPVLS_AllowCoachHearTeam = 71;
     */
    public static final int kPVLS_AllowCoachHearTeam_VALUE = 71;
    /**
     * kPVLS_AllowSameTeam = 72;
     */
    public static final int kPVLS_AllowSameTeam_VALUE = 72;
    /**
     * kPVLS_AllowShowcase = 73;
     */
    public static final int kPVLS_AllowShowcase_VALUE = 73;
    /**
     * kPVLS_AllowPrivateCoach = 74;
     */
    public static final int kPVLS_AllowPrivateCoach_VALUE = 74;


    public final int getNumber() { return value; }

    public static EPlayerVoiceListenState valueOf(int value) {
      switch (value) {
        case 0: return kPVLS_None;
        case 1: return kPVLS_DeniedChatBanned;
        case 2: return kPVLS_DeniedPartner;
        case 3: return kPVLS_DeniedHLTVTalkerNotSpectator;
        case 4: return kPVLS_DeniedHLTVNoTalkerPlayerID;
        case 5: return kPVLS_DeniedHLTVTalkerNotBroadcaster;
        case 6: return kPVLS_DeniedTeamSpectator;
        case 8: return kPVLS_DeniedStudent;
        case 9: return kPVLS_DeniedPrivateCoach;
        case 64: return kPVLS_Denied;
        case 65: return kPVLS_AllowHLTVTalkerIsBroadcaster;
        case 66: return kPVLS_AllowCoBroadcaster;
        case 67: return kPVLS_AllowAllChat;
        case 68: return kPVLS_AllowStudentToCoach;
        case 69: return kPVLS_AllowFellowStudent;
        case 70: return kPVLS_AllowTalkerIsCoach;
        case 71: return kPVLS_AllowCoachHearTeam;
        case 72: return kPVLS_AllowSameTeam;
        case 73: return kPVLS_AllowShowcase;
        case 74: return kPVLS_AllowPrivateCoach;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap
        internalGetValueMap() {
      return internalValueMap;
    }
    private static com.google.protobuf.Internal.EnumLiteMap
        internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap() {
            public EPlayerVoiceListenState findValueByNumber(int number) {
              return EPlayerVoiceListenState.valueOf(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      return getDescriptor().getValues().get(index);
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.getDescriptor().getEnumTypes().get(13);
    }

    private static final EPlayerVoiceListenState[] VALUES = values();

    public static EPlayerVoiceListenState valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      return VALUES[desc.getIndex()];
    }

    private final int index;
    private final int value;

    private EPlayerVoiceListenState(int index, int value) {
      this.index = index;
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:EPlayerVoiceListenState)
  }

  /**
   * Protobuf enum {@code EProjectionEvent}
   */
  public enum EProjectionEvent
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * ePE_FirstBlood = 0;
     */
    ePE_FirstBlood(0, 0),
    /**
     * ePE_Killstreak_godlike = 1;
     */
    ePE_Killstreak_godlike(1, 1),
    ;

    /**
     * ePE_FirstBlood = 0;
     */
    public static final int ePE_FirstBlood_VALUE = 0;
    /**
     * ePE_Killstreak_godlike = 1;
     */
    public static final int ePE_Killstreak_godlike_VALUE = 1;


    public final int getNumber() { return value; }

    public static EProjectionEvent valueOf(int value) {
      switch (value) {
        case 0: return ePE_FirstBlood;
        case 1: return ePE_Killstreak_godlike;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap
        internalGetValueMap() {
      return internalValueMap;
    }
    private static com.google.protobuf.Internal.EnumLiteMap
        internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap() {
            public EProjectionEvent findValueByNumber(int number) {
              return EProjectionEvent.valueOf(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      return getDescriptor().getValues().get(index);
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.getDescriptor().getEnumTypes().get(14);
    }

    private static final EProjectionEvent[] VALUES = values();

    public static EProjectionEvent valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      return VALUES[desc.getIndex()];
    }

    private final int index;
    private final int value;

    private EProjectionEvent(int index, int value) {
      this.index = index;
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:EProjectionEvent)
  }

  public interface CDOTAUserMsg_ChatEventOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_ChatEvent)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional .DOTA_CHAT_MESSAGE type = 1 [default = CHAT_MESSAGE_INVALID];
     */
    boolean hasType();
    /**
     * optional .DOTA_CHAT_MESSAGE type = 1 [default = CHAT_MESSAGE_INVALID];
     */
    skadistats.clarity.wire.common.proto.DotaUserMessages.DOTA_CHAT_MESSAGE getType();

    /**
     * optional uint32 value = 2;
     */
    boolean hasValue();
    /**
     * optional uint32 value = 2;
     */
    int getValue();

    /**
     * optional sint32 playerid_1 = 3 [default = -1];
     */
    boolean hasPlayerid1();
    /**
     * optional sint32 playerid_1 = 3 [default = -1];
     */
    int getPlayerid1();

    /**
     * optional sint32 playerid_2 = 4 [default = -1];
     */
    boolean hasPlayerid2();
    /**
     * optional sint32 playerid_2 = 4 [default = -1];
     */
    int getPlayerid2();

    /**
     * optional sint32 playerid_3 = 5 [default = -1];
     */
    boolean hasPlayerid3();
    /**
     * optional sint32 playerid_3 = 5 [default = -1];
     */
    int getPlayerid3();

    /**
     * optional sint32 playerid_4 = 6 [default = -1];
     */
    boolean hasPlayerid4();
    /**
     * optional sint32 playerid_4 = 6 [default = -1];
     */
    int getPlayerid4();

    /**
     * optional sint32 playerid_5 = 7 [default = -1];
     */
    boolean hasPlayerid5();
    /**
     * optional sint32 playerid_5 = 7 [default = -1];
     */
    int getPlayerid5();

    /**
     * optional sint32 playerid_6 = 8 [default = -1];
     */
    boolean hasPlayerid6();
    /**
     * optional sint32 playerid_6 = 8 [default = -1];
     */
    int getPlayerid6();

    /**
     * optional uint32 value2 = 9;
     */
    boolean hasValue2();
    /**
     * optional uint32 value2 = 9;
     */
    int getValue2();

    /**
     * optional uint32 value3 = 10;
     */
    boolean hasValue3();
    /**
     * optional uint32 value3 = 10;
     */
    int getValue3();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_ChatEvent}
   */
  public static final class CDOTAUserMsg_ChatEvent extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_ChatEvent)
      CDOTAUserMsg_ChatEventOrBuilder {
    // Use CDOTAUserMsg_ChatEvent.newBuilder() to construct.
    private CDOTAUserMsg_ChatEvent(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_ChatEvent(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_ChatEvent defaultInstance;
    public static CDOTAUserMsg_ChatEvent getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_ChatEvent getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_ChatEvent(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              int rawValue = input.readEnum();
              skadistats.clarity.wire.common.proto.DotaUserMessages.DOTA_CHAT_MESSAGE value = skadistats.clarity.wire.common.proto.DotaUserMessages.DOTA_CHAT_MESSAGE.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(1, rawValue);
              } else {
                bitField0_ |= 0x00000001;
                type_ = value;
              }
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              value_ = input.readUInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              playerid1_ = input.readSInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              playerid2_ = input.readSInt32();
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              playerid3_ = input.readSInt32();
              break;
            }
            case 48: {
              bitField0_ |= 0x00000020;
              playerid4_ = input.readSInt32();
              break;
            }
            case 56: {
              bitField0_ |= 0x00000040;
              playerid5_ = input.readSInt32();
              break;
            }
            case 64: {
              bitField0_ |= 0x00000080;
              playerid6_ = input.readSInt32();
              break;
            }
            case 72: {
              bitField0_ |= 0x00000100;
              value2_ = input.readUInt32();
              break;
            }
            case 80: {
              bitField0_ |= 0x00000200;
              value3_ = input.readUInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ChatEvent_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ChatEvent_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ChatEvent.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ChatEvent.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_ChatEvent parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_ChatEvent(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int TYPE_FIELD_NUMBER = 1;
    private skadistats.clarity.wire.common.proto.DotaUserMessages.DOTA_CHAT_MESSAGE type_;
    /**
     * optional .DOTA_CHAT_MESSAGE type = 1 [default = CHAT_MESSAGE_INVALID];
     */
    public boolean hasType() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional .DOTA_CHAT_MESSAGE type = 1 [default = CHAT_MESSAGE_INVALID];
     */
    public skadistats.clarity.wire.common.proto.DotaUserMessages.DOTA_CHAT_MESSAGE getType() {
      return type_;
    }

    public static final int VALUE_FIELD_NUMBER = 2;
    private int value_;
    /**
     * optional uint32 value = 2;
     */
    public boolean hasValue() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional uint32 value = 2;
     */
    public int getValue() {
      return value_;
    }

    public static final int PLAYERID_1_FIELD_NUMBER = 3;
    private int playerid1_;
    /**
     * optional sint32 playerid_1 = 3 [default = -1];
     */
    public boolean hasPlayerid1() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional sint32 playerid_1 = 3 [default = -1];
     */
    public int getPlayerid1() {
      return playerid1_;
    }

    public static final int PLAYERID_2_FIELD_NUMBER = 4;
    private int playerid2_;
    /**
     * optional sint32 playerid_2 = 4 [default = -1];
     */
    public boolean hasPlayerid2() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional sint32 playerid_2 = 4 [default = -1];
     */
    public int getPlayerid2() {
      return playerid2_;
    }

    public static final int PLAYERID_3_FIELD_NUMBER = 5;
    private int playerid3_;
    /**
     * optional sint32 playerid_3 = 5 [default = -1];
     */
    public boolean hasPlayerid3() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * optional sint32 playerid_3 = 5 [default = -1];
     */
    public int getPlayerid3() {
      return playerid3_;
    }

    public static final int PLAYERID_4_FIELD_NUMBER = 6;
    private int playerid4_;
    /**
     * optional sint32 playerid_4 = 6 [default = -1];
     */
    public boolean hasPlayerid4() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     * optional sint32 playerid_4 = 6 [default = -1];
     */
    public int getPlayerid4() {
      return playerid4_;
    }

    public static final int PLAYERID_5_FIELD_NUMBER = 7;
    private int playerid5_;
    /**
     * optional sint32 playerid_5 = 7 [default = -1];
     */
    public boolean hasPlayerid5() {
      return ((bitField0_ & 0x00000040) == 0x00000040);
    }
    /**
     * optional sint32 playerid_5 = 7 [default = -1];
     */
    public int getPlayerid5() {
      return playerid5_;
    }

    public static final int PLAYERID_6_FIELD_NUMBER = 8;
    private int playerid6_;
    /**
     * optional sint32 playerid_6 = 8 [default = -1];
     */
    public boolean hasPlayerid6() {
      return ((bitField0_ & 0x00000080) == 0x00000080);
    }
    /**
     * optional sint32 playerid_6 = 8 [default = -1];
     */
    public int getPlayerid6() {
      return playerid6_;
    }

    public static final int VALUE2_FIELD_NUMBER = 9;
    private int value2_;
    /**
     * optional uint32 value2 = 9;
     */
    public boolean hasValue2() {
      return ((bitField0_ & 0x00000100) == 0x00000100);
    }
    /**
     * optional uint32 value2 = 9;
     */
    public int getValue2() {
      return value2_;
    }

    public static final int VALUE3_FIELD_NUMBER = 10;
    private int value3_;
    /**
     * optional uint32 value3 = 10;
     */
    public boolean hasValue3() {
      return ((bitField0_ & 0x00000200) == 0x00000200);
    }
    /**
     * optional uint32 value3 = 10;
     */
    public int getValue3() {
      return value3_;
    }

    private void initFields() {
      type_ = skadistats.clarity.wire.common.proto.DotaUserMessages.DOTA_CHAT_MESSAGE.CHAT_MESSAGE_INVALID;
      value_ = 0;
      playerid1_ = -1;
      playerid2_ = -1;
      playerid3_ = -1;
      playerid4_ = -1;
      playerid5_ = -1;
      playerid6_ = -1;
      value2_ = 0;
      value3_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeEnum(1, type_.getNumber());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, value_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeSInt32(3, playerid1_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeSInt32(4, playerid2_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeSInt32(5, playerid3_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeSInt32(6, playerid4_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        output.writeSInt32(7, playerid5_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        output.writeSInt32(8, playerid6_);
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        output.writeUInt32(9, value2_);
      }
      if (((bitField0_ & 0x00000200) == 0x00000200)) {
        output.writeUInt32(10, value3_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(1, type_.getNumber());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, value_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeSInt32Size(3, playerid1_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeSInt32Size(4, playerid2_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeSInt32Size(5, playerid3_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeSInt32Size(6, playerid4_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        size += com.google.protobuf.CodedOutputStream
          .computeSInt32Size(7, playerid5_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        size += com.google.protobuf.CodedOutputStream
          .computeSInt32Size(8, playerid6_);
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(9, value2_);
      }
      if (((bitField0_ & 0x00000200) == 0x00000200)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(10, value3_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ChatEvent parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ChatEvent parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ChatEvent parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ChatEvent parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ChatEvent parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ChatEvent parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ChatEvent parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ChatEvent parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ChatEvent parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ChatEvent parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ChatEvent prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_ChatEvent}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_ChatEvent)
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ChatEventOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ChatEvent_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ChatEvent_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ChatEvent.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ChatEvent.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ChatEvent.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        type_ = skadistats.clarity.wire.common.proto.DotaUserMessages.DOTA_CHAT_MESSAGE.CHAT_MESSAGE_INVALID;
        bitField0_ = (bitField0_ & ~0x00000001);
        value_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        playerid1_ = -1;
        bitField0_ = (bitField0_ & ~0x00000004);
        playerid2_ = -1;
        bitField0_ = (bitField0_ & ~0x00000008);
        playerid3_ = -1;
        bitField0_ = (bitField0_ & ~0x00000010);
        playerid4_ = -1;
        bitField0_ = (bitField0_ & ~0x00000020);
        playerid5_ = -1;
        bitField0_ = (bitField0_ & ~0x00000040);
        playerid6_ = -1;
        bitField0_ = (bitField0_ & ~0x00000080);
        value2_ = 0;
        bitField0_ = (bitField0_ & ~0x00000100);
        value3_ = 0;
        bitField0_ = (bitField0_ & ~0x00000200);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ChatEvent_descriptor;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ChatEvent getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ChatEvent.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ChatEvent build() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ChatEvent result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ChatEvent buildPartial() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ChatEvent result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ChatEvent(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.type_ = type_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.value_ = value_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.playerid1_ = playerid1_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.playerid2_ = playerid2_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.playerid3_ = playerid3_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        result.playerid4_ = playerid4_;
        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
          to_bitField0_ |= 0x00000040;
        }
        result.playerid5_ = playerid5_;
        if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
          to_bitField0_ |= 0x00000080;
        }
        result.playerid6_ = playerid6_;
        if (((from_bitField0_ & 0x00000100) == 0x00000100)) {
          to_bitField0_ |= 0x00000100;
        }
        result.value2_ = value2_;
        if (((from_bitField0_ & 0x00000200) == 0x00000200)) {
          to_bitField0_ |= 0x00000200;
        }
        result.value3_ = value3_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ChatEvent) {
          return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ChatEvent)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ChatEvent other) {
        if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ChatEvent.getDefaultInstance()) return this;
        if (other.hasType()) {
          setType(other.getType());
        }
        if (other.hasValue()) {
          setValue(other.getValue());
        }
        if (other.hasPlayerid1()) {
          setPlayerid1(other.getPlayerid1());
        }
        if (other.hasPlayerid2()) {
          setPlayerid2(other.getPlayerid2());
        }
        if (other.hasPlayerid3()) {
          setPlayerid3(other.getPlayerid3());
        }
        if (other.hasPlayerid4()) {
          setPlayerid4(other.getPlayerid4());
        }
        if (other.hasPlayerid5()) {
          setPlayerid5(other.getPlayerid5());
        }
        if (other.hasPlayerid6()) {
          setPlayerid6(other.getPlayerid6());
        }
        if (other.hasValue2()) {
          setValue2(other.getValue2());
        }
        if (other.hasValue3()) {
          setValue3(other.getValue3());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ChatEvent parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ChatEvent) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private skadistats.clarity.wire.common.proto.DotaUserMessages.DOTA_CHAT_MESSAGE type_ = skadistats.clarity.wire.common.proto.DotaUserMessages.DOTA_CHAT_MESSAGE.CHAT_MESSAGE_INVALID;
      /**
       * optional .DOTA_CHAT_MESSAGE type = 1 [default = CHAT_MESSAGE_INVALID];
       */
      public boolean hasType() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional .DOTA_CHAT_MESSAGE type = 1 [default = CHAT_MESSAGE_INVALID];
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.DOTA_CHAT_MESSAGE getType() {
        return type_;
      }
      /**
       * optional .DOTA_CHAT_MESSAGE type = 1 [default = CHAT_MESSAGE_INVALID];
       */
      public Builder setType(skadistats.clarity.wire.common.proto.DotaUserMessages.DOTA_CHAT_MESSAGE value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        type_ = value;
        onChanged();
        return this;
      }
      /**
       * optional .DOTA_CHAT_MESSAGE type = 1 [default = CHAT_MESSAGE_INVALID];
       */
      public Builder clearType() {
        bitField0_ = (bitField0_ & ~0x00000001);
        type_ = skadistats.clarity.wire.common.proto.DotaUserMessages.DOTA_CHAT_MESSAGE.CHAT_MESSAGE_INVALID;
        onChanged();
        return this;
      }

      private int value_ ;
      /**
       * optional uint32 value = 2;
       */
      public boolean hasValue() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional uint32 value = 2;
       */
      public int getValue() {
        return value_;
      }
      /**
       * optional uint32 value = 2;
       */
      public Builder setValue(int value) {
        bitField0_ |= 0x00000002;
        value_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 value = 2;
       */
      public Builder clearValue() {
        bitField0_ = (bitField0_ & ~0x00000002);
        value_ = 0;
        onChanged();
        return this;
      }

      private int playerid1_ = -1;
      /**
       * optional sint32 playerid_1 = 3 [default = -1];
       */
      public boolean hasPlayerid1() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional sint32 playerid_1 = 3 [default = -1];
       */
      public int getPlayerid1() {
        return playerid1_;
      }
      /**
       * optional sint32 playerid_1 = 3 [default = -1];
       */
      public Builder setPlayerid1(int value) {
        bitField0_ |= 0x00000004;
        playerid1_ = value;
        onChanged();
        return this;
      }
      /**
       * optional sint32 playerid_1 = 3 [default = -1];
       */
      public Builder clearPlayerid1() {
        bitField0_ = (bitField0_ & ~0x00000004);
        playerid1_ = -1;
        onChanged();
        return this;
      }

      private int playerid2_ = -1;
      /**
       * optional sint32 playerid_2 = 4 [default = -1];
       */
      public boolean hasPlayerid2() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional sint32 playerid_2 = 4 [default = -1];
       */
      public int getPlayerid2() {
        return playerid2_;
      }
      /**
       * optional sint32 playerid_2 = 4 [default = -1];
       */
      public Builder setPlayerid2(int value) {
        bitField0_ |= 0x00000008;
        playerid2_ = value;
        onChanged();
        return this;
      }
      /**
       * optional sint32 playerid_2 = 4 [default = -1];
       */
      public Builder clearPlayerid2() {
        bitField0_ = (bitField0_ & ~0x00000008);
        playerid2_ = -1;
        onChanged();
        return this;
      }

      private int playerid3_ = -1;
      /**
       * optional sint32 playerid_3 = 5 [default = -1];
       */
      public boolean hasPlayerid3() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * optional sint32 playerid_3 = 5 [default = -1];
       */
      public int getPlayerid3() {
        return playerid3_;
      }
      /**
       * optional sint32 playerid_3 = 5 [default = -1];
       */
      public Builder setPlayerid3(int value) {
        bitField0_ |= 0x00000010;
        playerid3_ = value;
        onChanged();
        return this;
      }
      /**
       * optional sint32 playerid_3 = 5 [default = -1];
       */
      public Builder clearPlayerid3() {
        bitField0_ = (bitField0_ & ~0x00000010);
        playerid3_ = -1;
        onChanged();
        return this;
      }

      private int playerid4_ = -1;
      /**
       * optional sint32 playerid_4 = 6 [default = -1];
       */
      public boolean hasPlayerid4() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * optional sint32 playerid_4 = 6 [default = -1];
       */
      public int getPlayerid4() {
        return playerid4_;
      }
      /**
       * optional sint32 playerid_4 = 6 [default = -1];
       */
      public Builder setPlayerid4(int value) {
        bitField0_ |= 0x00000020;
        playerid4_ = value;
        onChanged();
        return this;
      }
      /**
       * optional sint32 playerid_4 = 6 [default = -1];
       */
      public Builder clearPlayerid4() {
        bitField0_ = (bitField0_ & ~0x00000020);
        playerid4_ = -1;
        onChanged();
        return this;
      }

      private int playerid5_ = -1;
      /**
       * optional sint32 playerid_5 = 7 [default = -1];
       */
      public boolean hasPlayerid5() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      /**
       * optional sint32 playerid_5 = 7 [default = -1];
       */
      public int getPlayerid5() {
        return playerid5_;
      }
      /**
       * optional sint32 playerid_5 = 7 [default = -1];
       */
      public Builder setPlayerid5(int value) {
        bitField0_ |= 0x00000040;
        playerid5_ = value;
        onChanged();
        return this;
      }
      /**
       * optional sint32 playerid_5 = 7 [default = -1];
       */
      public Builder clearPlayerid5() {
        bitField0_ = (bitField0_ & ~0x00000040);
        playerid5_ = -1;
        onChanged();
        return this;
      }

      private int playerid6_ = -1;
      /**
       * optional sint32 playerid_6 = 8 [default = -1];
       */
      public boolean hasPlayerid6() {
        return ((bitField0_ & 0x00000080) == 0x00000080);
      }
      /**
       * optional sint32 playerid_6 = 8 [default = -1];
       */
      public int getPlayerid6() {
        return playerid6_;
      }
      /**
       * optional sint32 playerid_6 = 8 [default = -1];
       */
      public Builder setPlayerid6(int value) {
        bitField0_ |= 0x00000080;
        playerid6_ = value;
        onChanged();
        return this;
      }
      /**
       * optional sint32 playerid_6 = 8 [default = -1];
       */
      public Builder clearPlayerid6() {
        bitField0_ = (bitField0_ & ~0x00000080);
        playerid6_ = -1;
        onChanged();
        return this;
      }

      private int value2_ ;
      /**
       * optional uint32 value2 = 9;
       */
      public boolean hasValue2() {
        return ((bitField0_ & 0x00000100) == 0x00000100);
      }
      /**
       * optional uint32 value2 = 9;
       */
      public int getValue2() {
        return value2_;
      }
      /**
       * optional uint32 value2 = 9;
       */
      public Builder setValue2(int value) {
        bitField0_ |= 0x00000100;
        value2_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 value2 = 9;
       */
      public Builder clearValue2() {
        bitField0_ = (bitField0_ & ~0x00000100);
        value2_ = 0;
        onChanged();
        return this;
      }

      private int value3_ ;
      /**
       * optional uint32 value3 = 10;
       */
      public boolean hasValue3() {
        return ((bitField0_ & 0x00000200) == 0x00000200);
      }
      /**
       * optional uint32 value3 = 10;
       */
      public int getValue3() {
        return value3_;
      }
      /**
       * optional uint32 value3 = 10;
       */
      public Builder setValue3(int value) {
        bitField0_ |= 0x00000200;
        value3_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 value3 = 10;
       */
      public Builder clearValue3() {
        bitField0_ = (bitField0_ & ~0x00000200);
        value3_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_ChatEvent)
    }

    static {
      defaultInstance = new CDOTAUserMsg_ChatEvent(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_ChatEvent)
  }

  public interface CDOTAUserMsg_BotChatOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_BotChat)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional uint32 player_id = 1;
     */
    boolean hasPlayerId();
    /**
     * optional uint32 player_id = 1;
     */
    int getPlayerId();

    /**
     * optional string format = 2;
     */
    boolean hasFormat();
    /**
     * optional string format = 2;
     */
    java.lang.String getFormat();
    /**
     * optional string format = 2;
     */
    com.google.protobuf.ByteString
        getFormatBytes();

    /**
     * optional string message = 3;
     */
    boolean hasMessage();
    /**
     * optional string message = 3;
     */
    java.lang.String getMessage();
    /**
     * optional string message = 3;
     */
    com.google.protobuf.ByteString
        getMessageBytes();

    /**
     * optional string target = 4;
     */
    boolean hasTarget();
    /**
     * optional string target = 4;
     */
    java.lang.String getTarget();
    /**
     * optional string target = 4;
     */
    com.google.protobuf.ByteString
        getTargetBytes();

    /**
     * optional bool team_only = 5;
     */
    boolean hasTeamOnly();
    /**
     * optional bool team_only = 5;
     */
    boolean getTeamOnly();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_BotChat}
   */
  public static final class CDOTAUserMsg_BotChat extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_BotChat)
      CDOTAUserMsg_BotChatOrBuilder {
    // Use CDOTAUserMsg_BotChat.newBuilder() to construct.
    private CDOTAUserMsg_BotChat(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_BotChat(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_BotChat defaultInstance;
    public static CDOTAUserMsg_BotChat getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_BotChat getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_BotChat(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              playerId_ = input.readUInt32();
              break;
            }
            case 18: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000002;
              format_ = bs;
              break;
            }
            case 26: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000004;
              message_ = bs;
              break;
            }
            case 34: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000008;
              target_ = bs;
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              teamOnly_ = input.readBool();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_BotChat_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_BotChat_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_BotChat.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_BotChat.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_BotChat parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_BotChat(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int PLAYER_ID_FIELD_NUMBER = 1;
    private int playerId_;
    /**
     * optional uint32 player_id = 1;
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional uint32 player_id = 1;
     */
    public int getPlayerId() {
      return playerId_;
    }

    public static final int FORMAT_FIELD_NUMBER = 2;
    private java.lang.Object format_;
    /**
     * optional string format = 2;
     */
    public boolean hasFormat() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional string format = 2;
     */
    public java.lang.String getFormat() {
      java.lang.Object ref = format_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          format_ = s;
        }
        return s;
      }
    }
    /**
     * optional string format = 2;
     */
    public com.google.protobuf.ByteString
        getFormatBytes() {
      java.lang.Object ref = format_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        format_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int MESSAGE_FIELD_NUMBER = 3;
    private java.lang.Object message_;
    /**
     * optional string message = 3;
     */
    public boolean hasMessage() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional string message = 3;
     */
    public java.lang.String getMessage() {
      java.lang.Object ref = message_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          message_ = s;
        }
        return s;
      }
    }
    /**
     * optional string message = 3;
     */
    public com.google.protobuf.ByteString
        getMessageBytes() {
      java.lang.Object ref = message_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        message_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int TARGET_FIELD_NUMBER = 4;
    private java.lang.Object target_;
    /**
     * optional string target = 4;
     */
    public boolean hasTarget() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional string target = 4;
     */
    public java.lang.String getTarget() {
      java.lang.Object ref = target_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          target_ = s;
        }
        return s;
      }
    }
    /**
     * optional string target = 4;
     */
    public com.google.protobuf.ByteString
        getTargetBytes() {
      java.lang.Object ref = target_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        target_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int TEAM_ONLY_FIELD_NUMBER = 5;
    private boolean teamOnly_;
    /**
     * optional bool team_only = 5;
     */
    public boolean hasTeamOnly() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * optional bool team_only = 5;
     */
    public boolean getTeamOnly() {
      return teamOnly_;
    }

    private void initFields() {
      playerId_ = 0;
      format_ = "";
      message_ = "";
      target_ = "";
      teamOnly_ = false;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBytes(2, getFormatBytes());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBytes(3, getMessageBytes());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeBytes(4, getTargetBytes());
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeBool(5, teamOnly_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, getFormatBytes());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(3, getMessageBytes());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(4, getTargetBytes());
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(5, teamOnly_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_BotChat parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_BotChat parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_BotChat parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_BotChat parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_BotChat parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_BotChat parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_BotChat parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_BotChat parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_BotChat parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_BotChat parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_BotChat prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_BotChat}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_BotChat)
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_BotChatOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_BotChat_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_BotChat_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_BotChat.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_BotChat.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_BotChat.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        format_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        message_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        target_ = "";
        bitField0_ = (bitField0_ & ~0x00000008);
        teamOnly_ = false;
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_BotChat_descriptor;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_BotChat getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_BotChat.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_BotChat build() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_BotChat result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_BotChat buildPartial() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_BotChat result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_BotChat(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.playerId_ = playerId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.format_ = format_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.message_ = message_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.target_ = target_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.teamOnly_ = teamOnly_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_BotChat) {
          return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_BotChat)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_BotChat other) {
        if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_BotChat.getDefaultInstance()) return this;
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        if (other.hasFormat()) {
          bitField0_ |= 0x00000002;
          format_ = other.format_;
          onChanged();
        }
        if (other.hasMessage()) {
          bitField0_ |= 0x00000004;
          message_ = other.message_;
          onChanged();
        }
        if (other.hasTarget()) {
          bitField0_ |= 0x00000008;
          target_ = other.target_;
          onChanged();
        }
        if (other.hasTeamOnly()) {
          setTeamOnly(other.getTeamOnly());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_BotChat parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_BotChat) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int playerId_ ;
      /**
       * optional uint32 player_id = 1;
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional uint32 player_id = 1;
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * optional uint32 player_id = 1;
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000001;
        playerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 player_id = 1;
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object format_ = "";
      /**
       * optional string format = 2;
       */
      public boolean hasFormat() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional string format = 2;
       */
      public java.lang.String getFormat() {
        java.lang.Object ref = format_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            format_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string format = 2;
       */
      public com.google.protobuf.ByteString
          getFormatBytes() {
        java.lang.Object ref = format_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          format_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string format = 2;
       */
      public Builder setFormat(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        format_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string format = 2;
       */
      public Builder clearFormat() {
        bitField0_ = (bitField0_ & ~0x00000002);
        format_ = getDefaultInstance().getFormat();
        onChanged();
        return this;
      }
      /**
       * optional string format = 2;
       */
      public Builder setFormatBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        format_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object message_ = "";
      /**
       * optional string message = 3;
       */
      public boolean hasMessage() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional string message = 3;
       */
      public java.lang.String getMessage() {
        java.lang.Object ref = message_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            message_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string message = 3;
       */
      public com.google.protobuf.ByteString
          getMessageBytes() {
        java.lang.Object ref = message_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          message_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string message = 3;
       */
      public Builder setMessage(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        message_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string message = 3;
       */
      public Builder clearMessage() {
        bitField0_ = (bitField0_ & ~0x00000004);
        message_ = getDefaultInstance().getMessage();
        onChanged();
        return this;
      }
      /**
       * optional string message = 3;
       */
      public Builder setMessageBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        message_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object target_ = "";
      /**
       * optional string target = 4;
       */
      public boolean hasTarget() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional string target = 4;
       */
      public java.lang.String getTarget() {
        java.lang.Object ref = target_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            target_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string target = 4;
       */
      public com.google.protobuf.ByteString
          getTargetBytes() {
        java.lang.Object ref = target_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          target_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string target = 4;
       */
      public Builder setTarget(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000008;
        target_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string target = 4;
       */
      public Builder clearTarget() {
        bitField0_ = (bitField0_ & ~0x00000008);
        target_ = getDefaultInstance().getTarget();
        onChanged();
        return this;
      }
      /**
       * optional string target = 4;
       */
      public Builder setTargetBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000008;
        target_ = value;
        onChanged();
        return this;
      }

      private boolean teamOnly_ ;
      /**
       * optional bool team_only = 5;
       */
      public boolean hasTeamOnly() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * optional bool team_only = 5;
       */
      public boolean getTeamOnly() {
        return teamOnly_;
      }
      /**
       * optional bool team_only = 5;
       */
      public Builder setTeamOnly(boolean value) {
        bitField0_ |= 0x00000010;
        teamOnly_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool team_only = 5;
       */
      public Builder clearTeamOnly() {
        bitField0_ = (bitField0_ & ~0x00000010);
        teamOnly_ = false;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_BotChat)
    }

    static {
      defaultInstance = new CDOTAUserMsg_BotChat(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_BotChat)
  }

  public interface CDOTAUserMsg_CombatLogBulkDataOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_CombatLogBulkData)
      com.google.protobuf.MessageOrBuilder {

    /**
     * repeated .CMsgDOTACombatLogEntry combat_entries = 1;
     */
    java.util.List 
        getCombatEntriesList();
    /**
     * repeated .CMsgDOTACombatLogEntry combat_entries = 1;
     */
    skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgDOTACombatLogEntry getCombatEntries(int index);
    /**
     * repeated .CMsgDOTACombatLogEntry combat_entries = 1;
     */
    int getCombatEntriesCount();
    /**
     * repeated .CMsgDOTACombatLogEntry combat_entries = 1;
     */
    java.util.List 
        getCombatEntriesOrBuilderList();
    /**
     * repeated .CMsgDOTACombatLogEntry combat_entries = 1;
     */
    skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgDOTACombatLogEntryOrBuilder getCombatEntriesOrBuilder(
        int index);

    /**
     * optional float timestamp = 2;
     */
    boolean hasTimestamp();
    /**
     * optional float timestamp = 2;
     */
    float getTimestamp();

    /**
     * optional float duration = 3;
     */
    boolean hasDuration();
    /**
     * optional float duration = 3;
     */
    float getDuration();

    /**
     * optional uint32 player_id = 4;
     */
    boolean hasPlayerId();
    /**
     * optional uint32 player_id = 4;
     */
    int getPlayerId();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_CombatLogBulkData}
   */
  public static final class CDOTAUserMsg_CombatLogBulkData extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_CombatLogBulkData)
      CDOTAUserMsg_CombatLogBulkDataOrBuilder {
    // Use CDOTAUserMsg_CombatLogBulkData.newBuilder() to construct.
    private CDOTAUserMsg_CombatLogBulkData(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_CombatLogBulkData(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_CombatLogBulkData defaultInstance;
    public static CDOTAUserMsg_CombatLogBulkData getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_CombatLogBulkData getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_CombatLogBulkData(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                combatEntries_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000001;
              }
              combatEntries_.add(input.readMessage(skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgDOTACombatLogEntry.PARSER, extensionRegistry));
              break;
            }
            case 21: {
              bitField0_ |= 0x00000001;
              timestamp_ = input.readFloat();
              break;
            }
            case 29: {
              bitField0_ |= 0x00000002;
              duration_ = input.readFloat();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000004;
              playerId_ = input.readUInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
          combatEntries_ = java.util.Collections.unmodifiableList(combatEntries_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_CombatLogBulkData_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_CombatLogBulkData_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CombatLogBulkData.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CombatLogBulkData.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_CombatLogBulkData parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_CombatLogBulkData(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int COMBAT_ENTRIES_FIELD_NUMBER = 1;
    private java.util.List combatEntries_;
    /**
     * repeated .CMsgDOTACombatLogEntry combat_entries = 1;
     */
    public java.util.List getCombatEntriesList() {
      return combatEntries_;
    }
    /**
     * repeated .CMsgDOTACombatLogEntry combat_entries = 1;
     */
    public java.util.List 
        getCombatEntriesOrBuilderList() {
      return combatEntries_;
    }
    /**
     * repeated .CMsgDOTACombatLogEntry combat_entries = 1;
     */
    public int getCombatEntriesCount() {
      return combatEntries_.size();
    }
    /**
     * repeated .CMsgDOTACombatLogEntry combat_entries = 1;
     */
    public skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgDOTACombatLogEntry getCombatEntries(int index) {
      return combatEntries_.get(index);
    }
    /**
     * repeated .CMsgDOTACombatLogEntry combat_entries = 1;
     */
    public skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgDOTACombatLogEntryOrBuilder getCombatEntriesOrBuilder(
        int index) {
      return combatEntries_.get(index);
    }

    public static final int TIMESTAMP_FIELD_NUMBER = 2;
    private float timestamp_;
    /**
     * optional float timestamp = 2;
     */
    public boolean hasTimestamp() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional float timestamp = 2;
     */
    public float getTimestamp() {
      return timestamp_;
    }

    public static final int DURATION_FIELD_NUMBER = 3;
    private float duration_;
    /**
     * optional float duration = 3;
     */
    public boolean hasDuration() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional float duration = 3;
     */
    public float getDuration() {
      return duration_;
    }

    public static final int PLAYER_ID_FIELD_NUMBER = 4;
    private int playerId_;
    /**
     * optional uint32 player_id = 4;
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional uint32 player_id = 4;
     */
    public int getPlayerId() {
      return playerId_;
    }

    private void initFields() {
      combatEntries_ = java.util.Collections.emptyList();
      timestamp_ = 0F;
      duration_ = 0F;
      playerId_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      for (int i = 0; i < combatEntries_.size(); i++) {
        output.writeMessage(1, combatEntries_.get(i));
      }
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeFloat(2, timestamp_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeFloat(3, duration_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeUInt32(4, playerId_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      for (int i = 0; i < combatEntries_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, combatEntries_.get(i));
      }
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(2, timestamp_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(3, duration_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(4, playerId_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CombatLogBulkData parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CombatLogBulkData parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CombatLogBulkData parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CombatLogBulkData parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CombatLogBulkData parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CombatLogBulkData parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CombatLogBulkData parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CombatLogBulkData parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CombatLogBulkData parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CombatLogBulkData parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CombatLogBulkData prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_CombatLogBulkData}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_CombatLogBulkData)
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CombatLogBulkDataOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_CombatLogBulkData_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_CombatLogBulkData_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CombatLogBulkData.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CombatLogBulkData.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CombatLogBulkData.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getCombatEntriesFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        if (combatEntriesBuilder_ == null) {
          combatEntries_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          combatEntriesBuilder_.clear();
        }
        timestamp_ = 0F;
        bitField0_ = (bitField0_ & ~0x00000002);
        duration_ = 0F;
        bitField0_ = (bitField0_ & ~0x00000004);
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_CombatLogBulkData_descriptor;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CombatLogBulkData getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CombatLogBulkData.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CombatLogBulkData build() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CombatLogBulkData result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CombatLogBulkData buildPartial() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CombatLogBulkData result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CombatLogBulkData(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (combatEntriesBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            combatEntries_ = java.util.Collections.unmodifiableList(combatEntries_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.combatEntries_ = combatEntries_;
        } else {
          result.combatEntries_ = combatEntriesBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000001;
        }
        result.timestamp_ = timestamp_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000002;
        }
        result.duration_ = duration_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000004;
        }
        result.playerId_ = playerId_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CombatLogBulkData) {
          return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CombatLogBulkData)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CombatLogBulkData other) {
        if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CombatLogBulkData.getDefaultInstance()) return this;
        if (combatEntriesBuilder_ == null) {
          if (!other.combatEntries_.isEmpty()) {
            if (combatEntries_.isEmpty()) {
              combatEntries_ = other.combatEntries_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureCombatEntriesIsMutable();
              combatEntries_.addAll(other.combatEntries_);
            }
            onChanged();
          }
        } else {
          if (!other.combatEntries_.isEmpty()) {
            if (combatEntriesBuilder_.isEmpty()) {
              combatEntriesBuilder_.dispose();
              combatEntriesBuilder_ = null;
              combatEntries_ = other.combatEntries_;
              bitField0_ = (bitField0_ & ~0x00000001);
              combatEntriesBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getCombatEntriesFieldBuilder() : null;
            } else {
              combatEntriesBuilder_.addAllMessages(other.combatEntries_);
            }
          }
        }
        if (other.hasTimestamp()) {
          setTimestamp(other.getTimestamp());
        }
        if (other.hasDuration()) {
          setDuration(other.getDuration());
        }
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CombatLogBulkData parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CombatLogBulkData) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.util.List combatEntries_ =
        java.util.Collections.emptyList();
      private void ensureCombatEntriesIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          combatEntries_ = new java.util.ArrayList(combatEntries_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgDOTACombatLogEntry, skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgDOTACombatLogEntry.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgDOTACombatLogEntryOrBuilder> combatEntriesBuilder_;

      /**
       * repeated .CMsgDOTACombatLogEntry combat_entries = 1;
       */
      public java.util.List getCombatEntriesList() {
        if (combatEntriesBuilder_ == null) {
          return java.util.Collections.unmodifiableList(combatEntries_);
        } else {
          return combatEntriesBuilder_.getMessageList();
        }
      }
      /**
       * repeated .CMsgDOTACombatLogEntry combat_entries = 1;
       */
      public int getCombatEntriesCount() {
        if (combatEntriesBuilder_ == null) {
          return combatEntries_.size();
        } else {
          return combatEntriesBuilder_.getCount();
        }
      }
      /**
       * repeated .CMsgDOTACombatLogEntry combat_entries = 1;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgDOTACombatLogEntry getCombatEntries(int index) {
        if (combatEntriesBuilder_ == null) {
          return combatEntries_.get(index);
        } else {
          return combatEntriesBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .CMsgDOTACombatLogEntry combat_entries = 1;
       */
      public Builder setCombatEntries(
          int index, skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgDOTACombatLogEntry value) {
        if (combatEntriesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureCombatEntriesIsMutable();
          combatEntries_.set(index, value);
          onChanged();
        } else {
          combatEntriesBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .CMsgDOTACombatLogEntry combat_entries = 1;
       */
      public Builder setCombatEntries(
          int index, skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgDOTACombatLogEntry.Builder builderForValue) {
        if (combatEntriesBuilder_ == null) {
          ensureCombatEntriesIsMutable();
          combatEntries_.set(index, builderForValue.build());
          onChanged();
        } else {
          combatEntriesBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CMsgDOTACombatLogEntry combat_entries = 1;
       */
      public Builder addCombatEntries(skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgDOTACombatLogEntry value) {
        if (combatEntriesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureCombatEntriesIsMutable();
          combatEntries_.add(value);
          onChanged();
        } else {
          combatEntriesBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .CMsgDOTACombatLogEntry combat_entries = 1;
       */
      public Builder addCombatEntries(
          int index, skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgDOTACombatLogEntry value) {
        if (combatEntriesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureCombatEntriesIsMutable();
          combatEntries_.add(index, value);
          onChanged();
        } else {
          combatEntriesBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .CMsgDOTACombatLogEntry combat_entries = 1;
       */
      public Builder addCombatEntries(
          skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgDOTACombatLogEntry.Builder builderForValue) {
        if (combatEntriesBuilder_ == null) {
          ensureCombatEntriesIsMutable();
          combatEntries_.add(builderForValue.build());
          onChanged();
        } else {
          combatEntriesBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CMsgDOTACombatLogEntry combat_entries = 1;
       */
      public Builder addCombatEntries(
          int index, skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgDOTACombatLogEntry.Builder builderForValue) {
        if (combatEntriesBuilder_ == null) {
          ensureCombatEntriesIsMutable();
          combatEntries_.add(index, builderForValue.build());
          onChanged();
        } else {
          combatEntriesBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CMsgDOTACombatLogEntry combat_entries = 1;
       */
      public Builder addAllCombatEntries(
          java.lang.Iterable values) {
        if (combatEntriesBuilder_ == null) {
          ensureCombatEntriesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, combatEntries_);
          onChanged();
        } else {
          combatEntriesBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .CMsgDOTACombatLogEntry combat_entries = 1;
       */
      public Builder clearCombatEntries() {
        if (combatEntriesBuilder_ == null) {
          combatEntries_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          combatEntriesBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .CMsgDOTACombatLogEntry combat_entries = 1;
       */
      public Builder removeCombatEntries(int index) {
        if (combatEntriesBuilder_ == null) {
          ensureCombatEntriesIsMutable();
          combatEntries_.remove(index);
          onChanged();
        } else {
          combatEntriesBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .CMsgDOTACombatLogEntry combat_entries = 1;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgDOTACombatLogEntry.Builder getCombatEntriesBuilder(
          int index) {
        return getCombatEntriesFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .CMsgDOTACombatLogEntry combat_entries = 1;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgDOTACombatLogEntryOrBuilder getCombatEntriesOrBuilder(
          int index) {
        if (combatEntriesBuilder_ == null) {
          return combatEntries_.get(index);  } else {
          return combatEntriesBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .CMsgDOTACombatLogEntry combat_entries = 1;
       */
      public java.util.List 
           getCombatEntriesOrBuilderList() {
        if (combatEntriesBuilder_ != null) {
          return combatEntriesBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(combatEntries_);
        }
      }
      /**
       * repeated .CMsgDOTACombatLogEntry combat_entries = 1;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgDOTACombatLogEntry.Builder addCombatEntriesBuilder() {
        return getCombatEntriesFieldBuilder().addBuilder(
            skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgDOTACombatLogEntry.getDefaultInstance());
      }
      /**
       * repeated .CMsgDOTACombatLogEntry combat_entries = 1;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgDOTACombatLogEntry.Builder addCombatEntriesBuilder(
          int index) {
        return getCombatEntriesFieldBuilder().addBuilder(
            index, skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgDOTACombatLogEntry.getDefaultInstance());
      }
      /**
       * repeated .CMsgDOTACombatLogEntry combat_entries = 1;
       */
      public java.util.List 
           getCombatEntriesBuilderList() {
        return getCombatEntriesFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgDOTACombatLogEntry, skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgDOTACombatLogEntry.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgDOTACombatLogEntryOrBuilder> 
          getCombatEntriesFieldBuilder() {
        if (combatEntriesBuilder_ == null) {
          combatEntriesBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgDOTACombatLogEntry, skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgDOTACombatLogEntry.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgDOTACombatLogEntryOrBuilder>(
                  combatEntries_,
                  ((bitField0_ & 0x00000001) == 0x00000001),
                  getParentForChildren(),
                  isClean());
          combatEntries_ = null;
        }
        return combatEntriesBuilder_;
      }

      private float timestamp_ ;
      /**
       * optional float timestamp = 2;
       */
      public boolean hasTimestamp() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional float timestamp = 2;
       */
      public float getTimestamp() {
        return timestamp_;
      }
      /**
       * optional float timestamp = 2;
       */
      public Builder setTimestamp(float value) {
        bitField0_ |= 0x00000002;
        timestamp_ = value;
        onChanged();
        return this;
      }
      /**
       * optional float timestamp = 2;
       */
      public Builder clearTimestamp() {
        bitField0_ = (bitField0_ & ~0x00000002);
        timestamp_ = 0F;
        onChanged();
        return this;
      }

      private float duration_ ;
      /**
       * optional float duration = 3;
       */
      public boolean hasDuration() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional float duration = 3;
       */
      public float getDuration() {
        return duration_;
      }
      /**
       * optional float duration = 3;
       */
      public Builder setDuration(float value) {
        bitField0_ |= 0x00000004;
        duration_ = value;
        onChanged();
        return this;
      }
      /**
       * optional float duration = 3;
       */
      public Builder clearDuration() {
        bitField0_ = (bitField0_ & ~0x00000004);
        duration_ = 0F;
        onChanged();
        return this;
      }

      private int playerId_ ;
      /**
       * optional uint32 player_id = 4;
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional uint32 player_id = 4;
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * optional uint32 player_id = 4;
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000008;
        playerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 player_id = 4;
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000008);
        playerId_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_CombatLogBulkData)
    }

    static {
      defaultInstance = new CDOTAUserMsg_CombatLogBulkData(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_CombatLogBulkData)
  }

  public interface CDOTAUserMsg_MiniKillCamInfoOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_MiniKillCamInfo)
      com.google.protobuf.MessageOrBuilder {

    /**
     * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker attackers = 1;
     */
    java.util.List 
        getAttackersList();
    /**
     * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker attackers = 1;
     */
    skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker getAttackers(int index);
    /**
     * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker attackers = 1;
     */
    int getAttackersCount();
    /**
     * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker attackers = 1;
     */
    java.util.List 
        getAttackersOrBuilderList();
    /**
     * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker attackers = 1;
     */
    skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.AttackerOrBuilder getAttackersOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_MiniKillCamInfo}
   */
  public static final class CDOTAUserMsg_MiniKillCamInfo extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_MiniKillCamInfo)
      CDOTAUserMsg_MiniKillCamInfoOrBuilder {
    // Use CDOTAUserMsg_MiniKillCamInfo.newBuilder() to construct.
    private CDOTAUserMsg_MiniKillCamInfo(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_MiniKillCamInfo(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_MiniKillCamInfo defaultInstance;
    public static CDOTAUserMsg_MiniKillCamInfo getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_MiniKillCamInfo getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_MiniKillCamInfo(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                attackers_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000001;
              }
              attackers_.add(input.readMessage(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.PARSER, extensionRegistry));
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
          attackers_ = java.util.Collections.unmodifiableList(attackers_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_MiniKillCamInfo_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_MiniKillCamInfo_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_MiniKillCamInfo parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_MiniKillCamInfo(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    public interface AttackerOrBuilder extends
        // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_MiniKillCamInfo.Attacker)
        com.google.protobuf.MessageOrBuilder {

      /**
       * optional uint32 attacker = 1;
       */
      boolean hasAttacker();
      /**
       * optional uint32 attacker = 1;
       */
      int getAttacker();

      /**
       * optional int32 total_damage = 2;
       */
      boolean hasTotalDamage();
      /**
       * optional int32 total_damage = 2;
       */
      int getTotalDamage();

      /**
       * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability abilities = 3;
       */
      java.util.List 
          getAbilitiesList();
      /**
       * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability abilities = 3;
       */
      skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability getAbilities(int index);
      /**
       * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability abilities = 3;
       */
      int getAbilitiesCount();
      /**
       * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability abilities = 3;
       */
      java.util.List 
          getAbilitiesOrBuilderList();
      /**
       * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability abilities = 3;
       */
      skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.AbilityOrBuilder getAbilitiesOrBuilder(
          int index);

      /**
       * optional string attacker_name = 4;
       */
      boolean hasAttackerName();
      /**
       * optional string attacker_name = 4;
       */
      java.lang.String getAttackerName();
      /**
       * optional string attacker_name = 4;
       */
      com.google.protobuf.ByteString
          getAttackerNameBytes();
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_MiniKillCamInfo.Attacker}
     */
    public static final class Attacker extends
        com.google.protobuf.GeneratedMessage implements
        // @@protoc_insertion_point(message_implements:CDOTAUserMsg_MiniKillCamInfo.Attacker)
        AttackerOrBuilder {
      // Use Attacker.newBuilder() to construct.
      private Attacker(com.google.protobuf.GeneratedMessage.Builder builder) {
        super(builder);
        this.unknownFields = builder.getUnknownFields();
      }
      private Attacker(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

      private static final Attacker defaultInstance;
      public static Attacker getDefaultInstance() {
        return defaultInstance;
      }

      public Attacker getDefaultInstanceForType() {
        return defaultInstance;
      }

      private final com.google.protobuf.UnknownFieldSet unknownFields;
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
          getUnknownFields() {
        return this.unknownFields;
      }
      private Attacker(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        initFields();
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
              case 8: {
                bitField0_ |= 0x00000001;
                attacker_ = input.readUInt32();
                break;
              }
              case 16: {
                bitField0_ |= 0x00000002;
                totalDamage_ = input.readInt32();
                break;
              }
              case 26: {
                if (!((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
                  abilities_ = new java.util.ArrayList();
                  mutable_bitField0_ |= 0x00000004;
                }
                abilities_.add(input.readMessage(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability.PARSER, extensionRegistry));
                break;
              }
              case 34: {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000004;
                attackerName_ = bs;
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e.getMessage()).setUnfinishedMessage(this);
        } finally {
          if (((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
            abilities_ = java.util.Collections.unmodifiableList(abilities_);
          }
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_MiniKillCamInfo_Attacker_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_MiniKillCamInfo_Attacker_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Builder.class);
      }

      public static com.google.protobuf.Parser PARSER =
          new com.google.protobuf.AbstractParser() {
        public Attacker parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new Attacker(input, extensionRegistry);
        }
      };

      @java.lang.Override
      public com.google.protobuf.Parser getParserForType() {
        return PARSER;
      }

      public interface AbilityOrBuilder extends
          // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability)
          com.google.protobuf.MessageOrBuilder {

        /**
         * optional uint32 ability_id = 1;
         */
        boolean hasAbilityId();
        /**
         * optional uint32 ability_id = 1;
         */
        int getAbilityId();

        /**
         * optional int32 damage = 2;
         */
        boolean hasDamage();
        /**
         * optional int32 damage = 2;
         */
        int getDamage();
      }
      /**
       * Protobuf type {@code CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability}
       */
      public static final class Ability extends
          com.google.protobuf.GeneratedMessage implements
          // @@protoc_insertion_point(message_implements:CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability)
          AbilityOrBuilder {
        // Use Ability.newBuilder() to construct.
        private Ability(com.google.protobuf.GeneratedMessage.Builder builder) {
          super(builder);
          this.unknownFields = builder.getUnknownFields();
        }
        private Ability(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

        private static final Ability defaultInstance;
        public static Ability getDefaultInstance() {
          return defaultInstance;
        }

        public Ability getDefaultInstanceForType() {
          return defaultInstance;
        }

        private final com.google.protobuf.UnknownFieldSet unknownFields;
        @java.lang.Override
        public final com.google.protobuf.UnknownFieldSet
            getUnknownFields() {
          return this.unknownFields;
        }
        private Ability(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          initFields();
          int mutable_bitField0_ = 0;
          com.google.protobuf.UnknownFieldSet.Builder unknownFields =
              com.google.protobuf.UnknownFieldSet.newBuilder();
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                default: {
                  if (!parseUnknownField(input, unknownFields,
                                         extensionRegistry, tag)) {
                    done = true;
                  }
                  break;
                }
                case 8: {
                  bitField0_ |= 0x00000001;
                  abilityId_ = input.readUInt32();
                  break;
                }
                case 16: {
                  bitField0_ |= 0x00000002;
                  damage_ = input.readInt32();
                  break;
                }
              }
            }
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(this);
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(
                e.getMessage()).setUnfinishedMessage(this);
          } finally {
            this.unknownFields = unknownFields.build();
            makeExtensionsImmutable();
          }
        }
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_MiniKillCamInfo_Attacker_Ability_descriptor;
        }

        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_MiniKillCamInfo_Attacker_Ability_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability.Builder.class);
        }

        public static com.google.protobuf.Parser PARSER =
            new com.google.protobuf.AbstractParser() {
          public Ability parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new Ability(input, extensionRegistry);
          }
        };

        @java.lang.Override
        public com.google.protobuf.Parser getParserForType() {
          return PARSER;
        }

        private int bitField0_;
        public static final int ABILITY_ID_FIELD_NUMBER = 1;
        private int abilityId_;
        /**
         * optional uint32 ability_id = 1;
         */
        public boolean hasAbilityId() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * optional uint32 ability_id = 1;
         */
        public int getAbilityId() {
          return abilityId_;
        }

        public static final int DAMAGE_FIELD_NUMBER = 2;
        private int damage_;
        /**
         * optional int32 damage = 2;
         */
        public boolean hasDamage() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        /**
         * optional int32 damage = 2;
         */
        public int getDamage() {
          return damage_;
        }

        private void initFields() {
          abilityId_ = 0;
          damage_ = 0;
        }
        private byte memoizedIsInitialized = -1;
        public final boolean isInitialized() {
          byte isInitialized = memoizedIsInitialized;
          if (isInitialized == 1) return true;
          if (isInitialized == 0) return false;

          memoizedIsInitialized = 1;
          return true;
        }

        public void writeTo(com.google.protobuf.CodedOutputStream output)
                            throws java.io.IOException {
          getSerializedSize();
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            output.writeUInt32(1, abilityId_);
          }
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            output.writeInt32(2, damage_);
          }
          getUnknownFields().writeTo(output);
        }

        private int memoizedSerializedSize = -1;
        public int getSerializedSize() {
          int size = memoizedSerializedSize;
          if (size != -1) return size;

          size = 0;
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            size += com.google.protobuf.CodedOutputStream
              .computeUInt32Size(1, abilityId_);
          }
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            size += com.google.protobuf.CodedOutputStream
              .computeInt32Size(2, damage_);
          }
          size += getUnknownFields().getSerializedSize();
          memoizedSerializedSize = size;
          return size;
        }

        private static final long serialVersionUID = 0L;
        @java.lang.Override
        protected java.lang.Object writeReplace()
            throws java.io.ObjectStreamException {
          return super.writeReplace();
        }

        public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability parseFrom(
            com.google.protobuf.ByteString data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data);
        }
        public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability parseFrom(
            com.google.protobuf.ByteString data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data, extensionRegistry);
        }
        public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability parseFrom(byte[] data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data);
        }
        public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability parseFrom(
            byte[] data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data, extensionRegistry);
        }
        public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability parseFrom(java.io.InputStream input)
            throws java.io.IOException {
          return PARSER.parseFrom(input);
        }
        public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability parseFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return PARSER.parseFrom(input, extensionRegistry);
        }
        public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
          return PARSER.parseDelimitedFrom(input);
        }
        public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability parseDelimitedFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return PARSER.parseDelimitedFrom(input, extensionRegistry);
        }
        public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
          return PARSER.parseFrom(input);
        }
        public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability parseFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return PARSER.parseFrom(input, extensionRegistry);
        }

        public static Builder newBuilder() { return Builder.create(); }
        public Builder newBuilderForType() { return newBuilder(); }
        public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability prototype) {
          return newBuilder().mergeFrom(prototype);
        }
        public Builder toBuilder() { return newBuilder(this); }

        @java.lang.Override
        protected Builder newBuilderForType(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          Builder builder = new Builder(parent);
          return builder;
        }
        /**
         * Protobuf type {@code CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability}
         */
        public static final class Builder extends
            com.google.protobuf.GeneratedMessage.Builder implements
            // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability)
            skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.AbilityOrBuilder {
          public static final com.google.protobuf.Descriptors.Descriptor
              getDescriptor() {
            return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_MiniKillCamInfo_Attacker_Ability_descriptor;
          }

          protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
              internalGetFieldAccessorTable() {
            return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_MiniKillCamInfo_Attacker_Ability_fieldAccessorTable
                .ensureFieldAccessorsInitialized(
                    skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability.Builder.class);
          }

          // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability.newBuilder()
          private Builder() {
            maybeForceBuilderInitialization();
          }

          private Builder(
              com.google.protobuf.GeneratedMessage.BuilderParent parent) {
            super(parent);
            maybeForceBuilderInitialization();
          }
          private void maybeForceBuilderInitialization() {
            if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
            }
          }
          private static Builder create() {
            return new Builder();
          }

          public Builder clear() {
            super.clear();
            abilityId_ = 0;
            bitField0_ = (bitField0_ & ~0x00000001);
            damage_ = 0;
            bitField0_ = (bitField0_ & ~0x00000002);
            return this;
          }

          public Builder clone() {
            return create().mergeFrom(buildPartial());
          }

          public com.google.protobuf.Descriptors.Descriptor
              getDescriptorForType() {
            return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_MiniKillCamInfo_Attacker_Ability_descriptor;
          }

          public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability getDefaultInstanceForType() {
            return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability.getDefaultInstance();
          }

          public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability build() {
            skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability result = buildPartial();
            if (!result.isInitialized()) {
              throw newUninitializedMessageException(result);
            }
            return result;
          }

          public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability buildPartial() {
            skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability(this);
            int from_bitField0_ = bitField0_;
            int to_bitField0_ = 0;
            if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
              to_bitField0_ |= 0x00000001;
            }
            result.abilityId_ = abilityId_;
            if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
              to_bitField0_ |= 0x00000002;
            }
            result.damage_ = damage_;
            result.bitField0_ = to_bitField0_;
            onBuilt();
            return result;
          }

          public Builder mergeFrom(com.google.protobuf.Message other) {
            if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability) {
              return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability)other);
            } else {
              super.mergeFrom(other);
              return this;
            }
          }

          public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability other) {
            if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability.getDefaultInstance()) return this;
            if (other.hasAbilityId()) {
              setAbilityId(other.getAbilityId());
            }
            if (other.hasDamage()) {
              setDamage(other.getDamage());
            }
            this.mergeUnknownFields(other.getUnknownFields());
            return this;
          }

          public final boolean isInitialized() {
            return true;
          }

          public Builder mergeFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws java.io.IOException {
            skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability parsedMessage = null;
            try {
              parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
            } catch (com.google.protobuf.InvalidProtocolBufferException e) {
              parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability) e.getUnfinishedMessage();
              throw e;
            } finally {
              if (parsedMessage != null) {
                mergeFrom(parsedMessage);
              }
            }
            return this;
          }
          private int bitField0_;

          private int abilityId_ ;
          /**
           * optional uint32 ability_id = 1;
           */
          public boolean hasAbilityId() {
            return ((bitField0_ & 0x00000001) == 0x00000001);
          }
          /**
           * optional uint32 ability_id = 1;
           */
          public int getAbilityId() {
            return abilityId_;
          }
          /**
           * optional uint32 ability_id = 1;
           */
          public Builder setAbilityId(int value) {
            bitField0_ |= 0x00000001;
            abilityId_ = value;
            onChanged();
            return this;
          }
          /**
           * optional uint32 ability_id = 1;
           */
          public Builder clearAbilityId() {
            bitField0_ = (bitField0_ & ~0x00000001);
            abilityId_ = 0;
            onChanged();
            return this;
          }

          private int damage_ ;
          /**
           * optional int32 damage = 2;
           */
          public boolean hasDamage() {
            return ((bitField0_ & 0x00000002) == 0x00000002);
          }
          /**
           * optional int32 damage = 2;
           */
          public int getDamage() {
            return damage_;
          }
          /**
           * optional int32 damage = 2;
           */
          public Builder setDamage(int value) {
            bitField0_ |= 0x00000002;
            damage_ = value;
            onChanged();
            return this;
          }
          /**
           * optional int32 damage = 2;
           */
          public Builder clearDamage() {
            bitField0_ = (bitField0_ & ~0x00000002);
            damage_ = 0;
            onChanged();
            return this;
          }

          // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability)
        }

        static {
          defaultInstance = new Ability(true);
          defaultInstance.initFields();
        }

        // @@protoc_insertion_point(class_scope:CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability)
      }

      private int bitField0_;
      public static final int ATTACKER_FIELD_NUMBER = 1;
      private int attacker_;
      /**
       * optional uint32 attacker = 1;
       */
      public boolean hasAttacker() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional uint32 attacker = 1;
       */
      public int getAttacker() {
        return attacker_;
      }

      public static final int TOTAL_DAMAGE_FIELD_NUMBER = 2;
      private int totalDamage_;
      /**
       * optional int32 total_damage = 2;
       */
      public boolean hasTotalDamage() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional int32 total_damage = 2;
       */
      public int getTotalDamage() {
        return totalDamage_;
      }

      public static final int ABILITIES_FIELD_NUMBER = 3;
      private java.util.List abilities_;
      /**
       * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability abilities = 3;
       */
      public java.util.List getAbilitiesList() {
        return abilities_;
      }
      /**
       * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability abilities = 3;
       */
      public java.util.List 
          getAbilitiesOrBuilderList() {
        return abilities_;
      }
      /**
       * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability abilities = 3;
       */
      public int getAbilitiesCount() {
        return abilities_.size();
      }
      /**
       * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability abilities = 3;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability getAbilities(int index) {
        return abilities_.get(index);
      }
      /**
       * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability abilities = 3;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.AbilityOrBuilder getAbilitiesOrBuilder(
          int index) {
        return abilities_.get(index);
      }

      public static final int ATTACKER_NAME_FIELD_NUMBER = 4;
      private java.lang.Object attackerName_;
      /**
       * optional string attacker_name = 4;
       */
      public boolean hasAttackerName() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional string attacker_name = 4;
       */
      public java.lang.String getAttackerName() {
        java.lang.Object ref = attackerName_;
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          com.google.protobuf.ByteString bs = 
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            attackerName_ = s;
          }
          return s;
        }
      }
      /**
       * optional string attacker_name = 4;
       */
      public com.google.protobuf.ByteString
          getAttackerNameBytes() {
        java.lang.Object ref = attackerName_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          attackerName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      private void initFields() {
        attacker_ = 0;
        totalDamage_ = 0;
        abilities_ = java.util.Collections.emptyList();
        attackerName_ = "";
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeUInt32(1, attacker_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeInt32(2, totalDamage_);
        }
        for (int i = 0; i < abilities_.size(); i++) {
          output.writeMessage(3, abilities_.get(i));
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          output.writeBytes(4, getAttackerNameBytes());
        }
        getUnknownFields().writeTo(output);
      }

      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;

        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeUInt32Size(1, attacker_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(2, totalDamage_);
        }
        for (int i = 0; i < abilities_.size(); i++) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(3, abilities_.get(i));
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          size += com.google.protobuf.CodedOutputStream
            .computeBytesSize(4, getAttackerNameBytes());
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.Object writeReplace()
          throws java.io.ObjectStreamException {
        return super.writeReplace();
      }

      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }

      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code CDOTAUserMsg_MiniKillCamInfo.Attacker}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder implements
          // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_MiniKillCamInfo.Attacker)
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.AttackerOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_MiniKillCamInfo_Attacker_descriptor;
        }

        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_MiniKillCamInfo_Attacker_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Builder.class);
        }

        // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
            getAbilitiesFieldBuilder();
          }
        }
        private static Builder create() {
          return new Builder();
        }

        public Builder clear() {
          super.clear();
          attacker_ = 0;
          bitField0_ = (bitField0_ & ~0x00000001);
          totalDamage_ = 0;
          bitField0_ = (bitField0_ & ~0x00000002);
          if (abilitiesBuilder_ == null) {
            abilities_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000004);
          } else {
            abilitiesBuilder_.clear();
          }
          attackerName_ = "";
          bitField0_ = (bitField0_ & ~0x00000008);
          return this;
        }

        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }

        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_MiniKillCamInfo_Attacker_descriptor;
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker getDefaultInstanceForType() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.getDefaultInstance();
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker build() {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker buildPartial() {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.attacker_ = attacker_;
          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
            to_bitField0_ |= 0x00000002;
          }
          result.totalDamage_ = totalDamage_;
          if (abilitiesBuilder_ == null) {
            if (((bitField0_ & 0x00000004) == 0x00000004)) {
              abilities_ = java.util.Collections.unmodifiableList(abilities_);
              bitField0_ = (bitField0_ & ~0x00000004);
            }
            result.abilities_ = abilities_;
          } else {
            result.abilities_ = abilitiesBuilder_.build();
          }
          if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
            to_bitField0_ |= 0x00000004;
          }
          result.attackerName_ = attackerName_;
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }

        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker) {
            return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker other) {
          if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.getDefaultInstance()) return this;
          if (other.hasAttacker()) {
            setAttacker(other.getAttacker());
          }
          if (other.hasTotalDamage()) {
            setTotalDamage(other.getTotalDamage());
          }
          if (abilitiesBuilder_ == null) {
            if (!other.abilities_.isEmpty()) {
              if (abilities_.isEmpty()) {
                abilities_ = other.abilities_;
                bitField0_ = (bitField0_ & ~0x00000004);
              } else {
                ensureAbilitiesIsMutable();
                abilities_.addAll(other.abilities_);
              }
              onChanged();
            }
          } else {
            if (!other.abilities_.isEmpty()) {
              if (abilitiesBuilder_.isEmpty()) {
                abilitiesBuilder_.dispose();
                abilitiesBuilder_ = null;
                abilities_ = other.abilities_;
                bitField0_ = (bitField0_ & ~0x00000004);
                abilitiesBuilder_ = 
                  com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                     getAbilitiesFieldBuilder() : null;
              } else {
                abilitiesBuilder_.addAllMessages(other.abilities_);
              }
            }
          }
          if (other.hasAttackerName()) {
            bitField0_ |= 0x00000008;
            attackerName_ = other.attackerName_;
            onChanged();
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }

        public final boolean isInitialized() {
          return true;
        }

        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker) e.getUnfinishedMessage();
            throw e;
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        private int attacker_ ;
        /**
         * optional uint32 attacker = 1;
         */
        public boolean hasAttacker() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * optional uint32 attacker = 1;
         */
        public int getAttacker() {
          return attacker_;
        }
        /**
         * optional uint32 attacker = 1;
         */
        public Builder setAttacker(int value) {
          bitField0_ |= 0x00000001;
          attacker_ = value;
          onChanged();
          return this;
        }
        /**
         * optional uint32 attacker = 1;
         */
        public Builder clearAttacker() {
          bitField0_ = (bitField0_ & ~0x00000001);
          attacker_ = 0;
          onChanged();
          return this;
        }

        private int totalDamage_ ;
        /**
         * optional int32 total_damage = 2;
         */
        public boolean hasTotalDamage() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        /**
         * optional int32 total_damage = 2;
         */
        public int getTotalDamage() {
          return totalDamage_;
        }
        /**
         * optional int32 total_damage = 2;
         */
        public Builder setTotalDamage(int value) {
          bitField0_ |= 0x00000002;
          totalDamage_ = value;
          onChanged();
          return this;
        }
        /**
         * optional int32 total_damage = 2;
         */
        public Builder clearTotalDamage() {
          bitField0_ = (bitField0_ & ~0x00000002);
          totalDamage_ = 0;
          onChanged();
          return this;
        }

        private java.util.List abilities_ =
          java.util.Collections.emptyList();
        private void ensureAbilitiesIsMutable() {
          if (!((bitField0_ & 0x00000004) == 0x00000004)) {
            abilities_ = new java.util.ArrayList(abilities_);
            bitField0_ |= 0x00000004;
           }
        }

        private com.google.protobuf.RepeatedFieldBuilder<
            skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.AbilityOrBuilder> abilitiesBuilder_;

        /**
         * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability abilities = 3;
         */
        public java.util.List getAbilitiesList() {
          if (abilitiesBuilder_ == null) {
            return java.util.Collections.unmodifiableList(abilities_);
          } else {
            return abilitiesBuilder_.getMessageList();
          }
        }
        /**
         * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability abilities = 3;
         */
        public int getAbilitiesCount() {
          if (abilitiesBuilder_ == null) {
            return abilities_.size();
          } else {
            return abilitiesBuilder_.getCount();
          }
        }
        /**
         * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability abilities = 3;
         */
        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability getAbilities(int index) {
          if (abilitiesBuilder_ == null) {
            return abilities_.get(index);
          } else {
            return abilitiesBuilder_.getMessage(index);
          }
        }
        /**
         * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability abilities = 3;
         */
        public Builder setAbilities(
            int index, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability value) {
          if (abilitiesBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureAbilitiesIsMutable();
            abilities_.set(index, value);
            onChanged();
          } else {
            abilitiesBuilder_.setMessage(index, value);
          }
          return this;
        }
        /**
         * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability abilities = 3;
         */
        public Builder setAbilities(
            int index, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability.Builder builderForValue) {
          if (abilitiesBuilder_ == null) {
            ensureAbilitiesIsMutable();
            abilities_.set(index, builderForValue.build());
            onChanged();
          } else {
            abilitiesBuilder_.setMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability abilities = 3;
         */
        public Builder addAbilities(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability value) {
          if (abilitiesBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureAbilitiesIsMutable();
            abilities_.add(value);
            onChanged();
          } else {
            abilitiesBuilder_.addMessage(value);
          }
          return this;
        }
        /**
         * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability abilities = 3;
         */
        public Builder addAbilities(
            int index, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability value) {
          if (abilitiesBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureAbilitiesIsMutable();
            abilities_.add(index, value);
            onChanged();
          } else {
            abilitiesBuilder_.addMessage(index, value);
          }
          return this;
        }
        /**
         * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability abilities = 3;
         */
        public Builder addAbilities(
            skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability.Builder builderForValue) {
          if (abilitiesBuilder_ == null) {
            ensureAbilitiesIsMutable();
            abilities_.add(builderForValue.build());
            onChanged();
          } else {
            abilitiesBuilder_.addMessage(builderForValue.build());
          }
          return this;
        }
        /**
         * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability abilities = 3;
         */
        public Builder addAbilities(
            int index, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability.Builder builderForValue) {
          if (abilitiesBuilder_ == null) {
            ensureAbilitiesIsMutable();
            abilities_.add(index, builderForValue.build());
            onChanged();
          } else {
            abilitiesBuilder_.addMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability abilities = 3;
         */
        public Builder addAllAbilities(
            java.lang.Iterable values) {
          if (abilitiesBuilder_ == null) {
            ensureAbilitiesIsMutable();
            com.google.protobuf.AbstractMessageLite.Builder.addAll(
                values, abilities_);
            onChanged();
          } else {
            abilitiesBuilder_.addAllMessages(values);
          }
          return this;
        }
        /**
         * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability abilities = 3;
         */
        public Builder clearAbilities() {
          if (abilitiesBuilder_ == null) {
            abilities_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000004);
            onChanged();
          } else {
            abilitiesBuilder_.clear();
          }
          return this;
        }
        /**
         * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability abilities = 3;
         */
        public Builder removeAbilities(int index) {
          if (abilitiesBuilder_ == null) {
            ensureAbilitiesIsMutable();
            abilities_.remove(index);
            onChanged();
          } else {
            abilitiesBuilder_.remove(index);
          }
          return this;
        }
        /**
         * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability abilities = 3;
         */
        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability.Builder getAbilitiesBuilder(
            int index) {
          return getAbilitiesFieldBuilder().getBuilder(index);
        }
        /**
         * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability abilities = 3;
         */
        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.AbilityOrBuilder getAbilitiesOrBuilder(
            int index) {
          if (abilitiesBuilder_ == null) {
            return abilities_.get(index);  } else {
            return abilitiesBuilder_.getMessageOrBuilder(index);
          }
        }
        /**
         * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability abilities = 3;
         */
        public java.util.List 
             getAbilitiesOrBuilderList() {
          if (abilitiesBuilder_ != null) {
            return abilitiesBuilder_.getMessageOrBuilderList();
          } else {
            return java.util.Collections.unmodifiableList(abilities_);
          }
        }
        /**
         * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability abilities = 3;
         */
        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability.Builder addAbilitiesBuilder() {
          return getAbilitiesFieldBuilder().addBuilder(
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability.getDefaultInstance());
        }
        /**
         * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability abilities = 3;
         */
        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability.Builder addAbilitiesBuilder(
            int index) {
          return getAbilitiesFieldBuilder().addBuilder(
              index, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability.getDefaultInstance());
        }
        /**
         * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability abilities = 3;
         */
        public java.util.List 
             getAbilitiesBuilderList() {
          return getAbilitiesFieldBuilder().getBuilderList();
        }
        private com.google.protobuf.RepeatedFieldBuilder<
            skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.AbilityOrBuilder> 
            getAbilitiesFieldBuilder() {
          if (abilitiesBuilder_ == null) {
            abilitiesBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.AbilityOrBuilder>(
                    abilities_,
                    ((bitField0_ & 0x00000004) == 0x00000004),
                    getParentForChildren(),
                    isClean());
            abilities_ = null;
          }
          return abilitiesBuilder_;
        }

        private java.lang.Object attackerName_ = "";
        /**
         * optional string attacker_name = 4;
         */
        public boolean hasAttackerName() {
          return ((bitField0_ & 0x00000008) == 0x00000008);
        }
        /**
         * optional string attacker_name = 4;
         */
        public java.lang.String getAttackerName() {
          java.lang.Object ref = attackerName_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            if (bs.isValidUtf8()) {
              attackerName_ = s;
            }
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * optional string attacker_name = 4;
         */
        public com.google.protobuf.ByteString
            getAttackerNameBytes() {
          java.lang.Object ref = attackerName_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            attackerName_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * optional string attacker_name = 4;
         */
        public Builder setAttackerName(
            java.lang.String value) {
          if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000008;
          attackerName_ = value;
          onChanged();
          return this;
        }
        /**
         * optional string attacker_name = 4;
         */
        public Builder clearAttackerName() {
          bitField0_ = (bitField0_ & ~0x00000008);
          attackerName_ = getDefaultInstance().getAttackerName();
          onChanged();
          return this;
        }
        /**
         * optional string attacker_name = 4;
         */
        public Builder setAttackerNameBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000008;
          attackerName_ = value;
          onChanged();
          return this;
        }

        // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_MiniKillCamInfo.Attacker)
      }

      static {
        defaultInstance = new Attacker(true);
        defaultInstance.initFields();
      }

      // @@protoc_insertion_point(class_scope:CDOTAUserMsg_MiniKillCamInfo.Attacker)
    }

    public static final int ATTACKERS_FIELD_NUMBER = 1;
    private java.util.List attackers_;
    /**
     * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker attackers = 1;
     */
    public java.util.List getAttackersList() {
      return attackers_;
    }
    /**
     * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker attackers = 1;
     */
    public java.util.List 
        getAttackersOrBuilderList() {
      return attackers_;
    }
    /**
     * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker attackers = 1;
     */
    public int getAttackersCount() {
      return attackers_.size();
    }
    /**
     * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker attackers = 1;
     */
    public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker getAttackers(int index) {
      return attackers_.get(index);
    }
    /**
     * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker attackers = 1;
     */
    public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.AttackerOrBuilder getAttackersOrBuilder(
        int index) {
      return attackers_.get(index);
    }

    private void initFields() {
      attackers_ = java.util.Collections.emptyList();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      for (int i = 0; i < attackers_.size(); i++) {
        output.writeMessage(1, attackers_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      for (int i = 0; i < attackers_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, attackers_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_MiniKillCamInfo}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_MiniKillCamInfo)
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfoOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_MiniKillCamInfo_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_MiniKillCamInfo_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getAttackersFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        if (attackersBuilder_ == null) {
          attackers_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          attackersBuilder_.clear();
        }
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_MiniKillCamInfo_descriptor;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo build() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo buildPartial() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo(this);
        int from_bitField0_ = bitField0_;
        if (attackersBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            attackers_ = java.util.Collections.unmodifiableList(attackers_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.attackers_ = attackers_;
        } else {
          result.attackers_ = attackersBuilder_.build();
        }
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo) {
          return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo other) {
        if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.getDefaultInstance()) return this;
        if (attackersBuilder_ == null) {
          if (!other.attackers_.isEmpty()) {
            if (attackers_.isEmpty()) {
              attackers_ = other.attackers_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureAttackersIsMutable();
              attackers_.addAll(other.attackers_);
            }
            onChanged();
          }
        } else {
          if (!other.attackers_.isEmpty()) {
            if (attackersBuilder_.isEmpty()) {
              attackersBuilder_.dispose();
              attackersBuilder_ = null;
              attackers_ = other.attackers_;
              bitField0_ = (bitField0_ & ~0x00000001);
              attackersBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getAttackersFieldBuilder() : null;
            } else {
              attackersBuilder_.addAllMessages(other.attackers_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.util.List attackers_ =
        java.util.Collections.emptyList();
      private void ensureAttackersIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          attackers_ = new java.util.ArrayList(attackers_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.AttackerOrBuilder> attackersBuilder_;

      /**
       * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker attackers = 1;
       */
      public java.util.List getAttackersList() {
        if (attackersBuilder_ == null) {
          return java.util.Collections.unmodifiableList(attackers_);
        } else {
          return attackersBuilder_.getMessageList();
        }
      }
      /**
       * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker attackers = 1;
       */
      public int getAttackersCount() {
        if (attackersBuilder_ == null) {
          return attackers_.size();
        } else {
          return attackersBuilder_.getCount();
        }
      }
      /**
       * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker attackers = 1;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker getAttackers(int index) {
        if (attackersBuilder_ == null) {
          return attackers_.get(index);
        } else {
          return attackersBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker attackers = 1;
       */
      public Builder setAttackers(
          int index, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker value) {
        if (attackersBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureAttackersIsMutable();
          attackers_.set(index, value);
          onChanged();
        } else {
          attackersBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker attackers = 1;
       */
      public Builder setAttackers(
          int index, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Builder builderForValue) {
        if (attackersBuilder_ == null) {
          ensureAttackersIsMutable();
          attackers_.set(index, builderForValue.build());
          onChanged();
        } else {
          attackersBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker attackers = 1;
       */
      public Builder addAttackers(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker value) {
        if (attackersBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureAttackersIsMutable();
          attackers_.add(value);
          onChanged();
        } else {
          attackersBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker attackers = 1;
       */
      public Builder addAttackers(
          int index, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker value) {
        if (attackersBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureAttackersIsMutable();
          attackers_.add(index, value);
          onChanged();
        } else {
          attackersBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker attackers = 1;
       */
      public Builder addAttackers(
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Builder builderForValue) {
        if (attackersBuilder_ == null) {
          ensureAttackersIsMutable();
          attackers_.add(builderForValue.build());
          onChanged();
        } else {
          attackersBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker attackers = 1;
       */
      public Builder addAttackers(
          int index, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Builder builderForValue) {
        if (attackersBuilder_ == null) {
          ensureAttackersIsMutable();
          attackers_.add(index, builderForValue.build());
          onChanged();
        } else {
          attackersBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker attackers = 1;
       */
      public Builder addAllAttackers(
          java.lang.Iterable values) {
        if (attackersBuilder_ == null) {
          ensureAttackersIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, attackers_);
          onChanged();
        } else {
          attackersBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker attackers = 1;
       */
      public Builder clearAttackers() {
        if (attackersBuilder_ == null) {
          attackers_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          attackersBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker attackers = 1;
       */
      public Builder removeAttackers(int index) {
        if (attackersBuilder_ == null) {
          ensureAttackersIsMutable();
          attackers_.remove(index);
          onChanged();
        } else {
          attackersBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker attackers = 1;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Builder getAttackersBuilder(
          int index) {
        return getAttackersFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker attackers = 1;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.AttackerOrBuilder getAttackersOrBuilder(
          int index) {
        if (attackersBuilder_ == null) {
          return attackers_.get(index);  } else {
          return attackersBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker attackers = 1;
       */
      public java.util.List 
           getAttackersOrBuilderList() {
        if (attackersBuilder_ != null) {
          return attackersBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(attackers_);
        }
      }
      /**
       * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker attackers = 1;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Builder addAttackersBuilder() {
        return getAttackersFieldBuilder().addBuilder(
            skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.getDefaultInstance());
      }
      /**
       * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker attackers = 1;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Builder addAttackersBuilder(
          int index) {
        return getAttackersFieldBuilder().addBuilder(
            index, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.getDefaultInstance());
      }
      /**
       * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker attackers = 1;
       */
      public java.util.List 
           getAttackersBuilderList() {
        return getAttackersFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.AttackerOrBuilder> 
          getAttackersFieldBuilder() {
        if (attackersBuilder_ == null) {
          attackersBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MiniKillCamInfo.AttackerOrBuilder>(
                  attackers_,
                  ((bitField0_ & 0x00000001) == 0x00000001),
                  getParentForChildren(),
                  isClean());
          attackers_ = null;
        }
        return attackersBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_MiniKillCamInfo)
    }

    static {
      defaultInstance = new CDOTAUserMsg_MiniKillCamInfo(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_MiniKillCamInfo)
  }

  public interface CDOTAUserMsg_GlobalLightColorOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_GlobalLightColor)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional uint32 color = 1;
     */
    boolean hasColor();
    /**
     * optional uint32 color = 1;
     */
    int getColor();

    /**
     * optional float duration = 2;
     */
    boolean hasDuration();
    /**
     * optional float duration = 2;
     */
    float getDuration();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_GlobalLightColor}
   */
  public static final class CDOTAUserMsg_GlobalLightColor extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_GlobalLightColor)
      CDOTAUserMsg_GlobalLightColorOrBuilder {
    // Use CDOTAUserMsg_GlobalLightColor.newBuilder() to construct.
    private CDOTAUserMsg_GlobalLightColor(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_GlobalLightColor(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_GlobalLightColor defaultInstance;
    public static CDOTAUserMsg_GlobalLightColor getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_GlobalLightColor getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_GlobalLightColor(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              color_ = input.readUInt32();
              break;
            }
            case 21: {
              bitField0_ |= 0x00000002;
              duration_ = input.readFloat();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_GlobalLightColor_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_GlobalLightColor_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GlobalLightColor.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GlobalLightColor.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_GlobalLightColor parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_GlobalLightColor(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int COLOR_FIELD_NUMBER = 1;
    private int color_;
    /**
     * optional uint32 color = 1;
     */
    public boolean hasColor() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional uint32 color = 1;
     */
    public int getColor() {
      return color_;
    }

    public static final int DURATION_FIELD_NUMBER = 2;
    private float duration_;
    /**
     * optional float duration = 2;
     */
    public boolean hasDuration() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional float duration = 2;
     */
    public float getDuration() {
      return duration_;
    }

    private void initFields() {
      color_ = 0;
      duration_ = 0F;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, color_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeFloat(2, duration_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, color_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(2, duration_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GlobalLightColor parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GlobalLightColor parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GlobalLightColor parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GlobalLightColor parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GlobalLightColor parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GlobalLightColor parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GlobalLightColor parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GlobalLightColor parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GlobalLightColor parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GlobalLightColor parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GlobalLightColor prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_GlobalLightColor}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_GlobalLightColor)
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GlobalLightColorOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_GlobalLightColor_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_GlobalLightColor_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GlobalLightColor.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GlobalLightColor.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GlobalLightColor.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        color_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        duration_ = 0F;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_GlobalLightColor_descriptor;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GlobalLightColor getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GlobalLightColor.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GlobalLightColor build() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GlobalLightColor result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GlobalLightColor buildPartial() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GlobalLightColor result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GlobalLightColor(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.color_ = color_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.duration_ = duration_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GlobalLightColor) {
          return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GlobalLightColor)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GlobalLightColor other) {
        if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GlobalLightColor.getDefaultInstance()) return this;
        if (other.hasColor()) {
          setColor(other.getColor());
        }
        if (other.hasDuration()) {
          setDuration(other.getDuration());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GlobalLightColor parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GlobalLightColor) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int color_ ;
      /**
       * optional uint32 color = 1;
       */
      public boolean hasColor() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional uint32 color = 1;
       */
      public int getColor() {
        return color_;
      }
      /**
       * optional uint32 color = 1;
       */
      public Builder setColor(int value) {
        bitField0_ |= 0x00000001;
        color_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 color = 1;
       */
      public Builder clearColor() {
        bitField0_ = (bitField0_ & ~0x00000001);
        color_ = 0;
        onChanged();
        return this;
      }

      private float duration_ ;
      /**
       * optional float duration = 2;
       */
      public boolean hasDuration() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional float duration = 2;
       */
      public float getDuration() {
        return duration_;
      }
      /**
       * optional float duration = 2;
       */
      public Builder setDuration(float value) {
        bitField0_ |= 0x00000002;
        duration_ = value;
        onChanged();
        return this;
      }
      /**
       * optional float duration = 2;
       */
      public Builder clearDuration() {
        bitField0_ = (bitField0_ & ~0x00000002);
        duration_ = 0F;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_GlobalLightColor)
    }

    static {
      defaultInstance = new CDOTAUserMsg_GlobalLightColor(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_GlobalLightColor)
  }

  public interface CDOTAUserMsg_GlobalLightDirectionOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_GlobalLightDirection)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional .CMsgVector direction = 1;
     */
    boolean hasDirection();
    /**
     * optional .CMsgVector direction = 1;
     */
    skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector getDirection();
    /**
     * optional .CMsgVector direction = 1;
     */
    skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder getDirectionOrBuilder();

    /**
     * optional float duration = 2;
     */
    boolean hasDuration();
    /**
     * optional float duration = 2;
     */
    float getDuration();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_GlobalLightDirection}
   */
  public static final class CDOTAUserMsg_GlobalLightDirection extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_GlobalLightDirection)
      CDOTAUserMsg_GlobalLightDirectionOrBuilder {
    // Use CDOTAUserMsg_GlobalLightDirection.newBuilder() to construct.
    private CDOTAUserMsg_GlobalLightDirection(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_GlobalLightDirection(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_GlobalLightDirection defaultInstance;
    public static CDOTAUserMsg_GlobalLightDirection getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_GlobalLightDirection getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_GlobalLightDirection(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) == 0x00000001)) {
                subBuilder = direction_.toBuilder();
              }
              direction_ = input.readMessage(skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(direction_);
                direction_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 21: {
              bitField0_ |= 0x00000002;
              duration_ = input.readFloat();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_GlobalLightDirection_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_GlobalLightDirection_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GlobalLightDirection.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GlobalLightDirection.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_GlobalLightDirection parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_GlobalLightDirection(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int DIRECTION_FIELD_NUMBER = 1;
    private skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector direction_;
    /**
     * optional .CMsgVector direction = 1;
     */
    public boolean hasDirection() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional .CMsgVector direction = 1;
     */
    public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector getDirection() {
      return direction_;
    }
    /**
     * optional .CMsgVector direction = 1;
     */
    public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder getDirectionOrBuilder() {
      return direction_;
    }

    public static final int DURATION_FIELD_NUMBER = 2;
    private float duration_;
    /**
     * optional float duration = 2;
     */
    public boolean hasDuration() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional float duration = 2;
     */
    public float getDuration() {
      return duration_;
    }

    private void initFields() {
      direction_ = skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.getDefaultInstance();
      duration_ = 0F;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, direction_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeFloat(2, duration_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, direction_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(2, duration_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GlobalLightDirection parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GlobalLightDirection parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GlobalLightDirection parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GlobalLightDirection parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GlobalLightDirection parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GlobalLightDirection parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GlobalLightDirection parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GlobalLightDirection parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GlobalLightDirection parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GlobalLightDirection parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GlobalLightDirection prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_GlobalLightDirection}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_GlobalLightDirection)
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GlobalLightDirectionOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_GlobalLightDirection_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_GlobalLightDirection_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GlobalLightDirection.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GlobalLightDirection.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GlobalLightDirection.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getDirectionFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        if (directionBuilder_ == null) {
          direction_ = skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.getDefaultInstance();
        } else {
          directionBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        duration_ = 0F;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_GlobalLightDirection_descriptor;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GlobalLightDirection getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GlobalLightDirection.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GlobalLightDirection build() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GlobalLightDirection result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GlobalLightDirection buildPartial() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GlobalLightDirection result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GlobalLightDirection(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (directionBuilder_ == null) {
          result.direction_ = direction_;
        } else {
          result.direction_ = directionBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.duration_ = duration_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GlobalLightDirection) {
          return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GlobalLightDirection)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GlobalLightDirection other) {
        if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GlobalLightDirection.getDefaultInstance()) return this;
        if (other.hasDirection()) {
          mergeDirection(other.getDirection());
        }
        if (other.hasDuration()) {
          setDuration(other.getDuration());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GlobalLightDirection parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GlobalLightDirection) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector direction_ = skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder> directionBuilder_;
      /**
       * optional .CMsgVector direction = 1;
       */
      public boolean hasDirection() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional .CMsgVector direction = 1;
       */
      public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector getDirection() {
        if (directionBuilder_ == null) {
          return direction_;
        } else {
          return directionBuilder_.getMessage();
        }
      }
      /**
       * optional .CMsgVector direction = 1;
       */
      public Builder setDirection(skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector value) {
        if (directionBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          direction_ = value;
          onChanged();
        } else {
          directionBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * optional .CMsgVector direction = 1;
       */
      public Builder setDirection(
          skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder builderForValue) {
        if (directionBuilder_ == null) {
          direction_ = builderForValue.build();
          onChanged();
        } else {
          directionBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * optional .CMsgVector direction = 1;
       */
      public Builder mergeDirection(skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector value) {
        if (directionBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001) &&
              direction_ != skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.getDefaultInstance()) {
            direction_ =
              skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.newBuilder(direction_).mergeFrom(value).buildPartial();
          } else {
            direction_ = value;
          }
          onChanged();
        } else {
          directionBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * optional .CMsgVector direction = 1;
       */
      public Builder clearDirection() {
        if (directionBuilder_ == null) {
          direction_ = skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.getDefaultInstance();
          onChanged();
        } else {
          directionBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * optional .CMsgVector direction = 1;
       */
      public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder getDirectionBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getDirectionFieldBuilder().getBuilder();
      }
      /**
       * optional .CMsgVector direction = 1;
       */
      public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder getDirectionOrBuilder() {
        if (directionBuilder_ != null) {
          return directionBuilder_.getMessageOrBuilder();
        } else {
          return direction_;
        }
      }
      /**
       * optional .CMsgVector direction = 1;
       */
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder> 
          getDirectionFieldBuilder() {
        if (directionBuilder_ == null) {
          directionBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder>(
                  getDirection(),
                  getParentForChildren(),
                  isClean());
          direction_ = null;
        }
        return directionBuilder_;
      }

      private float duration_ ;
      /**
       * optional float duration = 2;
       */
      public boolean hasDuration() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional float duration = 2;
       */
      public float getDuration() {
        return duration_;
      }
      /**
       * optional float duration = 2;
       */
      public Builder setDuration(float value) {
        bitField0_ |= 0x00000002;
        duration_ = value;
        onChanged();
        return this;
      }
      /**
       * optional float duration = 2;
       */
      public Builder clearDuration() {
        bitField0_ = (bitField0_ & ~0x00000002);
        duration_ = 0F;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_GlobalLightDirection)
    }

    static {
      defaultInstance = new CDOTAUserMsg_GlobalLightDirection(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_GlobalLightDirection)
  }

  public interface CDOTAUserMsg_LocationPingOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_LocationPing)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional uint32 player_id = 1;
     */
    boolean hasPlayerId();
    /**
     * optional uint32 player_id = 1;
     */
    int getPlayerId();

    /**
     * optional .CDOTAMsg_LocationPing location_ping = 2;
     */
    boolean hasLocationPing();
    /**
     * optional .CDOTAMsg_LocationPing location_ping = 2;
     */
    skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_LocationPing getLocationPing();
    /**
     * optional .CDOTAMsg_LocationPing location_ping = 2;
     */
    skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_LocationPingOrBuilder getLocationPingOrBuilder();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_LocationPing}
   */
  public static final class CDOTAUserMsg_LocationPing extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_LocationPing)
      CDOTAUserMsg_LocationPingOrBuilder {
    // Use CDOTAUserMsg_LocationPing.newBuilder() to construct.
    private CDOTAUserMsg_LocationPing(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_LocationPing(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_LocationPing defaultInstance;
    public static CDOTAUserMsg_LocationPing getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_LocationPing getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_LocationPing(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              playerId_ = input.readUInt32();
              break;
            }
            case 18: {
              skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_LocationPing.Builder subBuilder = null;
              if (((bitField0_ & 0x00000002) == 0x00000002)) {
                subBuilder = locationPing_.toBuilder();
              }
              locationPing_ = input.readMessage(skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_LocationPing.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(locationPing_);
                locationPing_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000002;
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_LocationPing_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_LocationPing_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_LocationPing.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_LocationPing.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_LocationPing parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_LocationPing(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int PLAYER_ID_FIELD_NUMBER = 1;
    private int playerId_;
    /**
     * optional uint32 player_id = 1;
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional uint32 player_id = 1;
     */
    public int getPlayerId() {
      return playerId_;
    }

    public static final int LOCATION_PING_FIELD_NUMBER = 2;
    private skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_LocationPing locationPing_;
    /**
     * optional .CDOTAMsg_LocationPing location_ping = 2;
     */
    public boolean hasLocationPing() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional .CDOTAMsg_LocationPing location_ping = 2;
     */
    public skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_LocationPing getLocationPing() {
      return locationPing_;
    }
    /**
     * optional .CDOTAMsg_LocationPing location_ping = 2;
     */
    public skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_LocationPingOrBuilder getLocationPingOrBuilder() {
      return locationPing_;
    }

    private void initFields() {
      playerId_ = 0;
      locationPing_ = skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_LocationPing.getDefaultInstance();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(2, locationPing_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, locationPing_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_LocationPing parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_LocationPing parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_LocationPing parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_LocationPing parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_LocationPing parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_LocationPing parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_LocationPing parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_LocationPing parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_LocationPing parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_LocationPing parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_LocationPing prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_LocationPing}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_LocationPing)
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_LocationPingOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_LocationPing_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_LocationPing_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_LocationPing.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_LocationPing.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_LocationPing.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getLocationPingFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        if (locationPingBuilder_ == null) {
          locationPing_ = skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_LocationPing.getDefaultInstance();
        } else {
          locationPingBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_LocationPing_descriptor;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_LocationPing getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_LocationPing.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_LocationPing build() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_LocationPing result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_LocationPing buildPartial() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_LocationPing result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_LocationPing(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.playerId_ = playerId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        if (locationPingBuilder_ == null) {
          result.locationPing_ = locationPing_;
        } else {
          result.locationPing_ = locationPingBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_LocationPing) {
          return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_LocationPing)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_LocationPing other) {
        if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_LocationPing.getDefaultInstance()) return this;
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        if (other.hasLocationPing()) {
          mergeLocationPing(other.getLocationPing());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_LocationPing parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_LocationPing) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int playerId_ ;
      /**
       * optional uint32 player_id = 1;
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional uint32 player_id = 1;
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * optional uint32 player_id = 1;
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000001;
        playerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 player_id = 1;
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        onChanged();
        return this;
      }

      private skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_LocationPing locationPing_ = skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_LocationPing.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_LocationPing, skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_LocationPing.Builder, skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_LocationPingOrBuilder> locationPingBuilder_;
      /**
       * optional .CDOTAMsg_LocationPing location_ping = 2;
       */
      public boolean hasLocationPing() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional .CDOTAMsg_LocationPing location_ping = 2;
       */
      public skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_LocationPing getLocationPing() {
        if (locationPingBuilder_ == null) {
          return locationPing_;
        } else {
          return locationPingBuilder_.getMessage();
        }
      }
      /**
       * optional .CDOTAMsg_LocationPing location_ping = 2;
       */
      public Builder setLocationPing(skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_LocationPing value) {
        if (locationPingBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          locationPing_ = value;
          onChanged();
        } else {
          locationPingBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * optional .CDOTAMsg_LocationPing location_ping = 2;
       */
      public Builder setLocationPing(
          skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_LocationPing.Builder builderForValue) {
        if (locationPingBuilder_ == null) {
          locationPing_ = builderForValue.build();
          onChanged();
        } else {
          locationPingBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * optional .CDOTAMsg_LocationPing location_ping = 2;
       */
      public Builder mergeLocationPing(skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_LocationPing value) {
        if (locationPingBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002) &&
              locationPing_ != skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_LocationPing.getDefaultInstance()) {
            locationPing_ =
              skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_LocationPing.newBuilder(locationPing_).mergeFrom(value).buildPartial();
          } else {
            locationPing_ = value;
          }
          onChanged();
        } else {
          locationPingBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * optional .CDOTAMsg_LocationPing location_ping = 2;
       */
      public Builder clearLocationPing() {
        if (locationPingBuilder_ == null) {
          locationPing_ = skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_LocationPing.getDefaultInstance();
          onChanged();
        } else {
          locationPingBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      /**
       * optional .CDOTAMsg_LocationPing location_ping = 2;
       */
      public skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_LocationPing.Builder getLocationPingBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getLocationPingFieldBuilder().getBuilder();
      }
      /**
       * optional .CDOTAMsg_LocationPing location_ping = 2;
       */
      public skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_LocationPingOrBuilder getLocationPingOrBuilder() {
        if (locationPingBuilder_ != null) {
          return locationPingBuilder_.getMessageOrBuilder();
        } else {
          return locationPing_;
        }
      }
      /**
       * optional .CDOTAMsg_LocationPing location_ping = 2;
       */
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_LocationPing, skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_LocationPing.Builder, skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_LocationPingOrBuilder> 
          getLocationPingFieldBuilder() {
        if (locationPingBuilder_ == null) {
          locationPingBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_LocationPing, skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_LocationPing.Builder, skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_LocationPingOrBuilder>(
                  getLocationPing(),
                  getParentForChildren(),
                  isClean());
          locationPing_ = null;
        }
        return locationPingBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_LocationPing)
    }

    static {
      defaultInstance = new CDOTAUserMsg_LocationPing(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_LocationPing)
  }

  public interface CDOTAUserMsg_PingConfirmationOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_PingConfirmation)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional uint32 player_id_of_original_pinger = 1;
     */
    boolean hasPlayerIdOfOriginalPinger();
    /**
     * optional uint32 player_id_of_original_pinger = 1;
     */
    int getPlayerIdOfOriginalPinger();

    /**
     * optional uint32 entity_index = 2;
     */
    boolean hasEntityIndex();
    /**
     * optional uint32 entity_index = 2;
     */
    int getEntityIndex();

    /**
     * optional uint32 icon_type = 3;
     */
    boolean hasIconType();
    /**
     * optional uint32 icon_type = 3;
     */
    int getIconType();

    /**
     * optional .CMsgVector location = 4;
     */
    boolean hasLocation();
    /**
     * optional .CMsgVector location = 4;
     */
    skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector getLocation();
    /**
     * optional .CMsgVector location = 4;
     */
    skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder getLocationOrBuilder();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_PingConfirmation}
   */
  public static final class CDOTAUserMsg_PingConfirmation extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_PingConfirmation)
      CDOTAUserMsg_PingConfirmationOrBuilder {
    // Use CDOTAUserMsg_PingConfirmation.newBuilder() to construct.
    private CDOTAUserMsg_PingConfirmation(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_PingConfirmation(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_PingConfirmation defaultInstance;
    public static CDOTAUserMsg_PingConfirmation getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_PingConfirmation getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_PingConfirmation(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              playerIdOfOriginalPinger_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              entityIndex_ = input.readUInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              iconType_ = input.readUInt32();
              break;
            }
            case 34: {
              skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder subBuilder = null;
              if (((bitField0_ & 0x00000008) == 0x00000008)) {
                subBuilder = location_.toBuilder();
              }
              location_ = input.readMessage(skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(location_);
                location_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000008;
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_PingConfirmation_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_PingConfirmation_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PingConfirmation.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PingConfirmation.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_PingConfirmation parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_PingConfirmation(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int PLAYER_ID_OF_ORIGINAL_PINGER_FIELD_NUMBER = 1;
    private int playerIdOfOriginalPinger_;
    /**
     * optional uint32 player_id_of_original_pinger = 1;
     */
    public boolean hasPlayerIdOfOriginalPinger() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional uint32 player_id_of_original_pinger = 1;
     */
    public int getPlayerIdOfOriginalPinger() {
      return playerIdOfOriginalPinger_;
    }

    public static final int ENTITY_INDEX_FIELD_NUMBER = 2;
    private int entityIndex_;
    /**
     * optional uint32 entity_index = 2;
     */
    public boolean hasEntityIndex() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional uint32 entity_index = 2;
     */
    public int getEntityIndex() {
      return entityIndex_;
    }

    public static final int ICON_TYPE_FIELD_NUMBER = 3;
    private int iconType_;
    /**
     * optional uint32 icon_type = 3;
     */
    public boolean hasIconType() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional uint32 icon_type = 3;
     */
    public int getIconType() {
      return iconType_;
    }

    public static final int LOCATION_FIELD_NUMBER = 4;
    private skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector location_;
    /**
     * optional .CMsgVector location = 4;
     */
    public boolean hasLocation() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional .CMsgVector location = 4;
     */
    public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector getLocation() {
      return location_;
    }
    /**
     * optional .CMsgVector location = 4;
     */
    public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder getLocationOrBuilder() {
      return location_;
    }

    private void initFields() {
      playerIdOfOriginalPinger_ = 0;
      entityIndex_ = 0;
      iconType_ = 0;
      location_ = skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.getDefaultInstance();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, playerIdOfOriginalPinger_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, entityIndex_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeUInt32(3, iconType_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeMessage(4, location_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, playerIdOfOriginalPinger_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, entityIndex_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, iconType_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, location_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PingConfirmation parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PingConfirmation parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PingConfirmation parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PingConfirmation parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PingConfirmation parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PingConfirmation parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PingConfirmation parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PingConfirmation parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PingConfirmation parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PingConfirmation parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PingConfirmation prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_PingConfirmation}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_PingConfirmation)
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PingConfirmationOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_PingConfirmation_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_PingConfirmation_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PingConfirmation.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PingConfirmation.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PingConfirmation.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getLocationFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        playerIdOfOriginalPinger_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        entityIndex_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        iconType_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        if (locationBuilder_ == null) {
          location_ = skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.getDefaultInstance();
        } else {
          locationBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_PingConfirmation_descriptor;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PingConfirmation getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PingConfirmation.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PingConfirmation build() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PingConfirmation result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PingConfirmation buildPartial() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PingConfirmation result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PingConfirmation(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.playerIdOfOriginalPinger_ = playerIdOfOriginalPinger_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.entityIndex_ = entityIndex_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.iconType_ = iconType_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        if (locationBuilder_ == null) {
          result.location_ = location_;
        } else {
          result.location_ = locationBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PingConfirmation) {
          return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PingConfirmation)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PingConfirmation other) {
        if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PingConfirmation.getDefaultInstance()) return this;
        if (other.hasPlayerIdOfOriginalPinger()) {
          setPlayerIdOfOriginalPinger(other.getPlayerIdOfOriginalPinger());
        }
        if (other.hasEntityIndex()) {
          setEntityIndex(other.getEntityIndex());
        }
        if (other.hasIconType()) {
          setIconType(other.getIconType());
        }
        if (other.hasLocation()) {
          mergeLocation(other.getLocation());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PingConfirmation parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PingConfirmation) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int playerIdOfOriginalPinger_ ;
      /**
       * optional uint32 player_id_of_original_pinger = 1;
       */
      public boolean hasPlayerIdOfOriginalPinger() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional uint32 player_id_of_original_pinger = 1;
       */
      public int getPlayerIdOfOriginalPinger() {
        return playerIdOfOriginalPinger_;
      }
      /**
       * optional uint32 player_id_of_original_pinger = 1;
       */
      public Builder setPlayerIdOfOriginalPinger(int value) {
        bitField0_ |= 0x00000001;
        playerIdOfOriginalPinger_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 player_id_of_original_pinger = 1;
       */
      public Builder clearPlayerIdOfOriginalPinger() {
        bitField0_ = (bitField0_ & ~0x00000001);
        playerIdOfOriginalPinger_ = 0;
        onChanged();
        return this;
      }

      private int entityIndex_ ;
      /**
       * optional uint32 entity_index = 2;
       */
      public boolean hasEntityIndex() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional uint32 entity_index = 2;
       */
      public int getEntityIndex() {
        return entityIndex_;
      }
      /**
       * optional uint32 entity_index = 2;
       */
      public Builder setEntityIndex(int value) {
        bitField0_ |= 0x00000002;
        entityIndex_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 entity_index = 2;
       */
      public Builder clearEntityIndex() {
        bitField0_ = (bitField0_ & ~0x00000002);
        entityIndex_ = 0;
        onChanged();
        return this;
      }

      private int iconType_ ;
      /**
       * optional uint32 icon_type = 3;
       */
      public boolean hasIconType() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional uint32 icon_type = 3;
       */
      public int getIconType() {
        return iconType_;
      }
      /**
       * optional uint32 icon_type = 3;
       */
      public Builder setIconType(int value) {
        bitField0_ |= 0x00000004;
        iconType_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 icon_type = 3;
       */
      public Builder clearIconType() {
        bitField0_ = (bitField0_ & ~0x00000004);
        iconType_ = 0;
        onChanged();
        return this;
      }

      private skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector location_ = skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder> locationBuilder_;
      /**
       * optional .CMsgVector location = 4;
       */
      public boolean hasLocation() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional .CMsgVector location = 4;
       */
      public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector getLocation() {
        if (locationBuilder_ == null) {
          return location_;
        } else {
          return locationBuilder_.getMessage();
        }
      }
      /**
       * optional .CMsgVector location = 4;
       */
      public Builder setLocation(skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector value) {
        if (locationBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          location_ = value;
          onChanged();
        } else {
          locationBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       * optional .CMsgVector location = 4;
       */
      public Builder setLocation(
          skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder builderForValue) {
        if (locationBuilder_ == null) {
          location_ = builderForValue.build();
          onChanged();
        } else {
          locationBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       * optional .CMsgVector location = 4;
       */
      public Builder mergeLocation(skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector value) {
        if (locationBuilder_ == null) {
          if (((bitField0_ & 0x00000008) == 0x00000008) &&
              location_ != skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.getDefaultInstance()) {
            location_ =
              skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.newBuilder(location_).mergeFrom(value).buildPartial();
          } else {
            location_ = value;
          }
          onChanged();
        } else {
          locationBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       * optional .CMsgVector location = 4;
       */
      public Builder clearLocation() {
        if (locationBuilder_ == null) {
          location_ = skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.getDefaultInstance();
          onChanged();
        } else {
          locationBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }
      /**
       * optional .CMsgVector location = 4;
       */
      public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder getLocationBuilder() {
        bitField0_ |= 0x00000008;
        onChanged();
        return getLocationFieldBuilder().getBuilder();
      }
      /**
       * optional .CMsgVector location = 4;
       */
      public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder getLocationOrBuilder() {
        if (locationBuilder_ != null) {
          return locationBuilder_.getMessageOrBuilder();
        } else {
          return location_;
        }
      }
      /**
       * optional .CMsgVector location = 4;
       */
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder> 
          getLocationFieldBuilder() {
        if (locationBuilder_ == null) {
          locationBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder>(
                  getLocation(),
                  getParentForChildren(),
                  isClean());
          location_ = null;
        }
        return locationBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_PingConfirmation)
    }

    static {
      defaultInstance = new CDOTAUserMsg_PingConfirmation(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_PingConfirmation)
  }

  public interface CDOTAUserMsg_EnemyItemAlertOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_EnemyItemAlert)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional uint32 player_id = 1;
     */
    boolean hasPlayerId();
    /**
     * optional uint32 player_id = 1;
     */
    int getPlayerId();

    /**
     * optional uint32 target_player_id = 2;
     */
    boolean hasTargetPlayerId();
    /**
     * optional uint32 target_player_id = 2;
     */
    int getTargetPlayerId();

    /**
     * optional int32 item_ability_id = 3;
     */
    boolean hasItemAbilityId();
    /**
     * optional int32 item_ability_id = 3;
     */
    int getItemAbilityId();

    /**
     * optional int32 rune_type = 4 [default = -1];
     */
    boolean hasRuneType();
    /**
     * optional int32 rune_type = 4 [default = -1];
     */
    int getRuneType();

    /**
     * optional int32 entity_id = 5;
     */
    boolean hasEntityId();
    /**
     * optional int32 entity_id = 5;
     */
    int getEntityId();

    /**
     * optional int32 item_level = 6 [default = -1];
     */
    boolean hasItemLevel();
    /**
     * optional int32 item_level = 6 [default = -1];
     */
    int getItemLevel();

    /**
     * optional int32 primary_charges = 7 [default = -1];
     */
    boolean hasPrimaryCharges();
    /**
     * optional int32 primary_charges = 7 [default = -1];
     */
    int getPrimaryCharges();

    /**
     * optional int32 secondary_charges = 8 [default = -1];
     */
    boolean hasSecondaryCharges();
    /**
     * optional int32 secondary_charges = 8 [default = -1];
     */
    int getSecondaryCharges();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_EnemyItemAlert}
   */
  public static final class CDOTAUserMsg_EnemyItemAlert extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_EnemyItemAlert)
      CDOTAUserMsg_EnemyItemAlertOrBuilder {
    // Use CDOTAUserMsg_EnemyItemAlert.newBuilder() to construct.
    private CDOTAUserMsg_EnemyItemAlert(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_EnemyItemAlert(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_EnemyItemAlert defaultInstance;
    public static CDOTAUserMsg_EnemyItemAlert getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_EnemyItemAlert getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_EnemyItemAlert(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              playerId_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              targetPlayerId_ = input.readUInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              itemAbilityId_ = input.readInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              runeType_ = input.readInt32();
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              entityId_ = input.readInt32();
              break;
            }
            case 48: {
              bitField0_ |= 0x00000020;
              itemLevel_ = input.readInt32();
              break;
            }
            case 56: {
              bitField0_ |= 0x00000040;
              primaryCharges_ = input.readInt32();
              break;
            }
            case 64: {
              bitField0_ |= 0x00000080;
              secondaryCharges_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_EnemyItemAlert_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_EnemyItemAlert_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_EnemyItemAlert.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_EnemyItemAlert.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_EnemyItemAlert parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_EnemyItemAlert(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int PLAYER_ID_FIELD_NUMBER = 1;
    private int playerId_;
    /**
     * optional uint32 player_id = 1;
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional uint32 player_id = 1;
     */
    public int getPlayerId() {
      return playerId_;
    }

    public static final int TARGET_PLAYER_ID_FIELD_NUMBER = 2;
    private int targetPlayerId_;
    /**
     * optional uint32 target_player_id = 2;
     */
    public boolean hasTargetPlayerId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional uint32 target_player_id = 2;
     */
    public int getTargetPlayerId() {
      return targetPlayerId_;
    }

    public static final int ITEM_ABILITY_ID_FIELD_NUMBER = 3;
    private int itemAbilityId_;
    /**
     * optional int32 item_ability_id = 3;
     */
    public boolean hasItemAbilityId() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional int32 item_ability_id = 3;
     */
    public int getItemAbilityId() {
      return itemAbilityId_;
    }

    public static final int RUNE_TYPE_FIELD_NUMBER = 4;
    private int runeType_;
    /**
     * optional int32 rune_type = 4 [default = -1];
     */
    public boolean hasRuneType() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional int32 rune_type = 4 [default = -1];
     */
    public int getRuneType() {
      return runeType_;
    }

    public static final int ENTITY_ID_FIELD_NUMBER = 5;
    private int entityId_;
    /**
     * optional int32 entity_id = 5;
     */
    public boolean hasEntityId() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * optional int32 entity_id = 5;
     */
    public int getEntityId() {
      return entityId_;
    }

    public static final int ITEM_LEVEL_FIELD_NUMBER = 6;
    private int itemLevel_;
    /**
     * optional int32 item_level = 6 [default = -1];
     */
    public boolean hasItemLevel() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     * optional int32 item_level = 6 [default = -1];
     */
    public int getItemLevel() {
      return itemLevel_;
    }

    public static final int PRIMARY_CHARGES_FIELD_NUMBER = 7;
    private int primaryCharges_;
    /**
     * optional int32 primary_charges = 7 [default = -1];
     */
    public boolean hasPrimaryCharges() {
      return ((bitField0_ & 0x00000040) == 0x00000040);
    }
    /**
     * optional int32 primary_charges = 7 [default = -1];
     */
    public int getPrimaryCharges() {
      return primaryCharges_;
    }

    public static final int SECONDARY_CHARGES_FIELD_NUMBER = 8;
    private int secondaryCharges_;
    /**
     * optional int32 secondary_charges = 8 [default = -1];
     */
    public boolean hasSecondaryCharges() {
      return ((bitField0_ & 0x00000080) == 0x00000080);
    }
    /**
     * optional int32 secondary_charges = 8 [default = -1];
     */
    public int getSecondaryCharges() {
      return secondaryCharges_;
    }

    private void initFields() {
      playerId_ = 0;
      targetPlayerId_ = 0;
      itemAbilityId_ = 0;
      runeType_ = -1;
      entityId_ = 0;
      itemLevel_ = -1;
      primaryCharges_ = -1;
      secondaryCharges_ = -1;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, targetPlayerId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeInt32(3, itemAbilityId_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeInt32(4, runeType_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeInt32(5, entityId_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeInt32(6, itemLevel_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        output.writeInt32(7, primaryCharges_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        output.writeInt32(8, secondaryCharges_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, targetPlayerId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, itemAbilityId_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, runeType_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(5, entityId_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(6, itemLevel_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(7, primaryCharges_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(8, secondaryCharges_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_EnemyItemAlert parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_EnemyItemAlert parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_EnemyItemAlert parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_EnemyItemAlert parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_EnemyItemAlert parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_EnemyItemAlert parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_EnemyItemAlert parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_EnemyItemAlert parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_EnemyItemAlert parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_EnemyItemAlert parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_EnemyItemAlert prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_EnemyItemAlert}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_EnemyItemAlert)
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_EnemyItemAlertOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_EnemyItemAlert_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_EnemyItemAlert_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_EnemyItemAlert.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_EnemyItemAlert.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_EnemyItemAlert.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        targetPlayerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        itemAbilityId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        runeType_ = -1;
        bitField0_ = (bitField0_ & ~0x00000008);
        entityId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000010);
        itemLevel_ = -1;
        bitField0_ = (bitField0_ & ~0x00000020);
        primaryCharges_ = -1;
        bitField0_ = (bitField0_ & ~0x00000040);
        secondaryCharges_ = -1;
        bitField0_ = (bitField0_ & ~0x00000080);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_EnemyItemAlert_descriptor;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_EnemyItemAlert getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_EnemyItemAlert.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_EnemyItemAlert build() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_EnemyItemAlert result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_EnemyItemAlert buildPartial() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_EnemyItemAlert result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_EnemyItemAlert(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.playerId_ = playerId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.targetPlayerId_ = targetPlayerId_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.itemAbilityId_ = itemAbilityId_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.runeType_ = runeType_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.entityId_ = entityId_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        result.itemLevel_ = itemLevel_;
        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
          to_bitField0_ |= 0x00000040;
        }
        result.primaryCharges_ = primaryCharges_;
        if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
          to_bitField0_ |= 0x00000080;
        }
        result.secondaryCharges_ = secondaryCharges_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_EnemyItemAlert) {
          return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_EnemyItemAlert)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_EnemyItemAlert other) {
        if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_EnemyItemAlert.getDefaultInstance()) return this;
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        if (other.hasTargetPlayerId()) {
          setTargetPlayerId(other.getTargetPlayerId());
        }
        if (other.hasItemAbilityId()) {
          setItemAbilityId(other.getItemAbilityId());
        }
        if (other.hasRuneType()) {
          setRuneType(other.getRuneType());
        }
        if (other.hasEntityId()) {
          setEntityId(other.getEntityId());
        }
        if (other.hasItemLevel()) {
          setItemLevel(other.getItemLevel());
        }
        if (other.hasPrimaryCharges()) {
          setPrimaryCharges(other.getPrimaryCharges());
        }
        if (other.hasSecondaryCharges()) {
          setSecondaryCharges(other.getSecondaryCharges());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_EnemyItemAlert parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_EnemyItemAlert) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int playerId_ ;
      /**
       * optional uint32 player_id = 1;
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional uint32 player_id = 1;
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * optional uint32 player_id = 1;
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000001;
        playerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 player_id = 1;
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        onChanged();
        return this;
      }

      private int targetPlayerId_ ;
      /**
       * optional uint32 target_player_id = 2;
       */
      public boolean hasTargetPlayerId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional uint32 target_player_id = 2;
       */
      public int getTargetPlayerId() {
        return targetPlayerId_;
      }
      /**
       * optional uint32 target_player_id = 2;
       */
      public Builder setTargetPlayerId(int value) {
        bitField0_ |= 0x00000002;
        targetPlayerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 target_player_id = 2;
       */
      public Builder clearTargetPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        targetPlayerId_ = 0;
        onChanged();
        return this;
      }

      private int itemAbilityId_ ;
      /**
       * optional int32 item_ability_id = 3;
       */
      public boolean hasItemAbilityId() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional int32 item_ability_id = 3;
       */
      public int getItemAbilityId() {
        return itemAbilityId_;
      }
      /**
       * optional int32 item_ability_id = 3;
       */
      public Builder setItemAbilityId(int value) {
        bitField0_ |= 0x00000004;
        itemAbilityId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 item_ability_id = 3;
       */
      public Builder clearItemAbilityId() {
        bitField0_ = (bitField0_ & ~0x00000004);
        itemAbilityId_ = 0;
        onChanged();
        return this;
      }

      private int runeType_ = -1;
      /**
       * optional int32 rune_type = 4 [default = -1];
       */
      public boolean hasRuneType() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional int32 rune_type = 4 [default = -1];
       */
      public int getRuneType() {
        return runeType_;
      }
      /**
       * optional int32 rune_type = 4 [default = -1];
       */
      public Builder setRuneType(int value) {
        bitField0_ |= 0x00000008;
        runeType_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 rune_type = 4 [default = -1];
       */
      public Builder clearRuneType() {
        bitField0_ = (bitField0_ & ~0x00000008);
        runeType_ = -1;
        onChanged();
        return this;
      }

      private int entityId_ ;
      /**
       * optional int32 entity_id = 5;
       */
      public boolean hasEntityId() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * optional int32 entity_id = 5;
       */
      public int getEntityId() {
        return entityId_;
      }
      /**
       * optional int32 entity_id = 5;
       */
      public Builder setEntityId(int value) {
        bitField0_ |= 0x00000010;
        entityId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 entity_id = 5;
       */
      public Builder clearEntityId() {
        bitField0_ = (bitField0_ & ~0x00000010);
        entityId_ = 0;
        onChanged();
        return this;
      }

      private int itemLevel_ = -1;
      /**
       * optional int32 item_level = 6 [default = -1];
       */
      public boolean hasItemLevel() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * optional int32 item_level = 6 [default = -1];
       */
      public int getItemLevel() {
        return itemLevel_;
      }
      /**
       * optional int32 item_level = 6 [default = -1];
       */
      public Builder setItemLevel(int value) {
        bitField0_ |= 0x00000020;
        itemLevel_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 item_level = 6 [default = -1];
       */
      public Builder clearItemLevel() {
        bitField0_ = (bitField0_ & ~0x00000020);
        itemLevel_ = -1;
        onChanged();
        return this;
      }

      private int primaryCharges_ = -1;
      /**
       * optional int32 primary_charges = 7 [default = -1];
       */
      public boolean hasPrimaryCharges() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      /**
       * optional int32 primary_charges = 7 [default = -1];
       */
      public int getPrimaryCharges() {
        return primaryCharges_;
      }
      /**
       * optional int32 primary_charges = 7 [default = -1];
       */
      public Builder setPrimaryCharges(int value) {
        bitField0_ |= 0x00000040;
        primaryCharges_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 primary_charges = 7 [default = -1];
       */
      public Builder clearPrimaryCharges() {
        bitField0_ = (bitField0_ & ~0x00000040);
        primaryCharges_ = -1;
        onChanged();
        return this;
      }

      private int secondaryCharges_ = -1;
      /**
       * optional int32 secondary_charges = 8 [default = -1];
       */
      public boolean hasSecondaryCharges() {
        return ((bitField0_ & 0x00000080) == 0x00000080);
      }
      /**
       * optional int32 secondary_charges = 8 [default = -1];
       */
      public int getSecondaryCharges() {
        return secondaryCharges_;
      }
      /**
       * optional int32 secondary_charges = 8 [default = -1];
       */
      public Builder setSecondaryCharges(int value) {
        bitField0_ |= 0x00000080;
        secondaryCharges_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 secondary_charges = 8 [default = -1];
       */
      public Builder clearSecondaryCharges() {
        bitField0_ = (bitField0_ & ~0x00000080);
        secondaryCharges_ = -1;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_EnemyItemAlert)
    }

    static {
      defaultInstance = new CDOTAUserMsg_EnemyItemAlert(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_EnemyItemAlert)
  }

  public interface CDOTAUserMsg_ModifierAlertOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_ModifierAlert)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional uint32 player_id = 1;
     */
    boolean hasPlayerId();
    /**
     * optional uint32 player_id = 1;
     */
    int getPlayerId();

    /**
     * optional string class_name = 2;
     */
    boolean hasClassName();
    /**
     * optional string class_name = 2;
     */
    java.lang.String getClassName();
    /**
     * optional string class_name = 2;
     */
    com.google.protobuf.ByteString
        getClassNameBytes();

    /**
     * optional uint32 stack_count = 3;
     */
    boolean hasStackCount();
    /**
     * optional uint32 stack_count = 3;
     */
    int getStackCount();

    /**
     * optional bool is_debuff = 4;
     */
    boolean hasIsDebuff();
    /**
     * optional bool is_debuff = 4;
     */
    boolean getIsDebuff();

    /**
     * optional uint32 target_entindex = 5;
     */
    boolean hasTargetEntindex();
    /**
     * optional uint32 target_entindex = 5;
     */
    int getTargetEntindex();

    /**
     * optional float seconds_remaining = 6;
     */
    boolean hasSecondsRemaining();
    /**
     * optional float seconds_remaining = 6;
     */
    float getSecondsRemaining();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_ModifierAlert}
   */
  public static final class CDOTAUserMsg_ModifierAlert extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_ModifierAlert)
      CDOTAUserMsg_ModifierAlertOrBuilder {
    // Use CDOTAUserMsg_ModifierAlert.newBuilder() to construct.
    private CDOTAUserMsg_ModifierAlert(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_ModifierAlert(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_ModifierAlert defaultInstance;
    public static CDOTAUserMsg_ModifierAlert getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_ModifierAlert getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_ModifierAlert(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              playerId_ = input.readUInt32();
              break;
            }
            case 18: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000002;
              className_ = bs;
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              stackCount_ = input.readUInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              isDebuff_ = input.readBool();
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              targetEntindex_ = input.readUInt32();
              break;
            }
            case 53: {
              bitField0_ |= 0x00000020;
              secondsRemaining_ = input.readFloat();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ModifierAlert_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ModifierAlert_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ModifierAlert.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ModifierAlert.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_ModifierAlert parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_ModifierAlert(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int PLAYER_ID_FIELD_NUMBER = 1;
    private int playerId_;
    /**
     * optional uint32 player_id = 1;
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional uint32 player_id = 1;
     */
    public int getPlayerId() {
      return playerId_;
    }

    public static final int CLASS_NAME_FIELD_NUMBER = 2;
    private java.lang.Object className_;
    /**
     * optional string class_name = 2;
     */
    public boolean hasClassName() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional string class_name = 2;
     */
    public java.lang.String getClassName() {
      java.lang.Object ref = className_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          className_ = s;
        }
        return s;
      }
    }
    /**
     * optional string class_name = 2;
     */
    public com.google.protobuf.ByteString
        getClassNameBytes() {
      java.lang.Object ref = className_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        className_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int STACK_COUNT_FIELD_NUMBER = 3;
    private int stackCount_;
    /**
     * optional uint32 stack_count = 3;
     */
    public boolean hasStackCount() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional uint32 stack_count = 3;
     */
    public int getStackCount() {
      return stackCount_;
    }

    public static final int IS_DEBUFF_FIELD_NUMBER = 4;
    private boolean isDebuff_;
    /**
     * optional bool is_debuff = 4;
     */
    public boolean hasIsDebuff() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional bool is_debuff = 4;
     */
    public boolean getIsDebuff() {
      return isDebuff_;
    }

    public static final int TARGET_ENTINDEX_FIELD_NUMBER = 5;
    private int targetEntindex_;
    /**
     * optional uint32 target_entindex = 5;
     */
    public boolean hasTargetEntindex() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * optional uint32 target_entindex = 5;
     */
    public int getTargetEntindex() {
      return targetEntindex_;
    }

    public static final int SECONDS_REMAINING_FIELD_NUMBER = 6;
    private float secondsRemaining_;
    /**
     * optional float seconds_remaining = 6;
     */
    public boolean hasSecondsRemaining() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     * optional float seconds_remaining = 6;
     */
    public float getSecondsRemaining() {
      return secondsRemaining_;
    }

    private void initFields() {
      playerId_ = 0;
      className_ = "";
      stackCount_ = 0;
      isDebuff_ = false;
      targetEntindex_ = 0;
      secondsRemaining_ = 0F;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBytes(2, getClassNameBytes());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeUInt32(3, stackCount_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeBool(4, isDebuff_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeUInt32(5, targetEntindex_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeFloat(6, secondsRemaining_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, getClassNameBytes());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, stackCount_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(4, isDebuff_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(5, targetEntindex_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(6, secondsRemaining_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ModifierAlert parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ModifierAlert parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ModifierAlert parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ModifierAlert parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ModifierAlert parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ModifierAlert parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ModifierAlert parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ModifierAlert parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ModifierAlert parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ModifierAlert parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ModifierAlert prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_ModifierAlert}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_ModifierAlert)
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ModifierAlertOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ModifierAlert_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ModifierAlert_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ModifierAlert.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ModifierAlert.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ModifierAlert.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        className_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        stackCount_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        isDebuff_ = false;
        bitField0_ = (bitField0_ & ~0x00000008);
        targetEntindex_ = 0;
        bitField0_ = (bitField0_ & ~0x00000010);
        secondsRemaining_ = 0F;
        bitField0_ = (bitField0_ & ~0x00000020);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ModifierAlert_descriptor;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ModifierAlert getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ModifierAlert.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ModifierAlert build() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ModifierAlert result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ModifierAlert buildPartial() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ModifierAlert result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ModifierAlert(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.playerId_ = playerId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.className_ = className_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.stackCount_ = stackCount_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.isDebuff_ = isDebuff_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.targetEntindex_ = targetEntindex_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        result.secondsRemaining_ = secondsRemaining_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ModifierAlert) {
          return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ModifierAlert)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ModifierAlert other) {
        if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ModifierAlert.getDefaultInstance()) return this;
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        if (other.hasClassName()) {
          bitField0_ |= 0x00000002;
          className_ = other.className_;
          onChanged();
        }
        if (other.hasStackCount()) {
          setStackCount(other.getStackCount());
        }
        if (other.hasIsDebuff()) {
          setIsDebuff(other.getIsDebuff());
        }
        if (other.hasTargetEntindex()) {
          setTargetEntindex(other.getTargetEntindex());
        }
        if (other.hasSecondsRemaining()) {
          setSecondsRemaining(other.getSecondsRemaining());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ModifierAlert parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ModifierAlert) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int playerId_ ;
      /**
       * optional uint32 player_id = 1;
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional uint32 player_id = 1;
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * optional uint32 player_id = 1;
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000001;
        playerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 player_id = 1;
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object className_ = "";
      /**
       * optional string class_name = 2;
       */
      public boolean hasClassName() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional string class_name = 2;
       */
      public java.lang.String getClassName() {
        java.lang.Object ref = className_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            className_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string class_name = 2;
       */
      public com.google.protobuf.ByteString
          getClassNameBytes() {
        java.lang.Object ref = className_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          className_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string class_name = 2;
       */
      public Builder setClassName(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        className_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string class_name = 2;
       */
      public Builder clearClassName() {
        bitField0_ = (bitField0_ & ~0x00000002);
        className_ = getDefaultInstance().getClassName();
        onChanged();
        return this;
      }
      /**
       * optional string class_name = 2;
       */
      public Builder setClassNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        className_ = value;
        onChanged();
        return this;
      }

      private int stackCount_ ;
      /**
       * optional uint32 stack_count = 3;
       */
      public boolean hasStackCount() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional uint32 stack_count = 3;
       */
      public int getStackCount() {
        return stackCount_;
      }
      /**
       * optional uint32 stack_count = 3;
       */
      public Builder setStackCount(int value) {
        bitField0_ |= 0x00000004;
        stackCount_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 stack_count = 3;
       */
      public Builder clearStackCount() {
        bitField0_ = (bitField0_ & ~0x00000004);
        stackCount_ = 0;
        onChanged();
        return this;
      }

      private boolean isDebuff_ ;
      /**
       * optional bool is_debuff = 4;
       */
      public boolean hasIsDebuff() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional bool is_debuff = 4;
       */
      public boolean getIsDebuff() {
        return isDebuff_;
      }
      /**
       * optional bool is_debuff = 4;
       */
      public Builder setIsDebuff(boolean value) {
        bitField0_ |= 0x00000008;
        isDebuff_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool is_debuff = 4;
       */
      public Builder clearIsDebuff() {
        bitField0_ = (bitField0_ & ~0x00000008);
        isDebuff_ = false;
        onChanged();
        return this;
      }

      private int targetEntindex_ ;
      /**
       * optional uint32 target_entindex = 5;
       */
      public boolean hasTargetEntindex() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * optional uint32 target_entindex = 5;
       */
      public int getTargetEntindex() {
        return targetEntindex_;
      }
      /**
       * optional uint32 target_entindex = 5;
       */
      public Builder setTargetEntindex(int value) {
        bitField0_ |= 0x00000010;
        targetEntindex_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 target_entindex = 5;
       */
      public Builder clearTargetEntindex() {
        bitField0_ = (bitField0_ & ~0x00000010);
        targetEntindex_ = 0;
        onChanged();
        return this;
      }

      private float secondsRemaining_ ;
      /**
       * optional float seconds_remaining = 6;
       */
      public boolean hasSecondsRemaining() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * optional float seconds_remaining = 6;
       */
      public float getSecondsRemaining() {
        return secondsRemaining_;
      }
      /**
       * optional float seconds_remaining = 6;
       */
      public Builder setSecondsRemaining(float value) {
        bitField0_ |= 0x00000020;
        secondsRemaining_ = value;
        onChanged();
        return this;
      }
      /**
       * optional float seconds_remaining = 6;
       */
      public Builder clearSecondsRemaining() {
        bitField0_ = (bitField0_ & ~0x00000020);
        secondsRemaining_ = 0F;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_ModifierAlert)
    }

    static {
      defaultInstance = new CDOTAUserMsg_ModifierAlert(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_ModifierAlert)
  }

  public interface CDOTAUserMsg_HPManaAlertOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_HPManaAlert)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional uint32 player_id = 1;
     */
    boolean hasPlayerId();
    /**
     * optional uint32 player_id = 1;
     */
    int getPlayerId();

    /**
     * optional uint32 target_entindex = 2;
     */
    boolean hasTargetEntindex();
    /**
     * optional uint32 target_entindex = 2;
     */
    int getTargetEntindex();

    /**
     * optional bool show_raw_values = 3;
     */
    boolean hasShowRawValues();
    /**
     * optional bool show_raw_values = 3;
     */
    boolean getShowRawValues();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_HPManaAlert}
   */
  public static final class CDOTAUserMsg_HPManaAlert extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_HPManaAlert)
      CDOTAUserMsg_HPManaAlertOrBuilder {
    // Use CDOTAUserMsg_HPManaAlert.newBuilder() to construct.
    private CDOTAUserMsg_HPManaAlert(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_HPManaAlert(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_HPManaAlert defaultInstance;
    public static CDOTAUserMsg_HPManaAlert getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_HPManaAlert getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_HPManaAlert(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              playerId_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              targetEntindex_ = input.readUInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              showRawValues_ = input.readBool();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_HPManaAlert_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_HPManaAlert_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HPManaAlert.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HPManaAlert.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_HPManaAlert parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_HPManaAlert(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int PLAYER_ID_FIELD_NUMBER = 1;
    private int playerId_;
    /**
     * optional uint32 player_id = 1;
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional uint32 player_id = 1;
     */
    public int getPlayerId() {
      return playerId_;
    }

    public static final int TARGET_ENTINDEX_FIELD_NUMBER = 2;
    private int targetEntindex_;
    /**
     * optional uint32 target_entindex = 2;
     */
    public boolean hasTargetEntindex() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional uint32 target_entindex = 2;
     */
    public int getTargetEntindex() {
      return targetEntindex_;
    }

    public static final int SHOW_RAW_VALUES_FIELD_NUMBER = 3;
    private boolean showRawValues_;
    /**
     * optional bool show_raw_values = 3;
     */
    public boolean hasShowRawValues() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional bool show_raw_values = 3;
     */
    public boolean getShowRawValues() {
      return showRawValues_;
    }

    private void initFields() {
      playerId_ = 0;
      targetEntindex_ = 0;
      showRawValues_ = false;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, targetEntindex_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBool(3, showRawValues_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, targetEntindex_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(3, showRawValues_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HPManaAlert parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HPManaAlert parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HPManaAlert parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HPManaAlert parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HPManaAlert parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HPManaAlert parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HPManaAlert parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HPManaAlert parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HPManaAlert parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HPManaAlert parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HPManaAlert prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_HPManaAlert}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_HPManaAlert)
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HPManaAlertOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_HPManaAlert_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_HPManaAlert_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HPManaAlert.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HPManaAlert.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HPManaAlert.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        targetEntindex_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        showRawValues_ = false;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_HPManaAlert_descriptor;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HPManaAlert getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HPManaAlert.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HPManaAlert build() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HPManaAlert result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HPManaAlert buildPartial() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HPManaAlert result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HPManaAlert(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.playerId_ = playerId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.targetEntindex_ = targetEntindex_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.showRawValues_ = showRawValues_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HPManaAlert) {
          return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HPManaAlert)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HPManaAlert other) {
        if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HPManaAlert.getDefaultInstance()) return this;
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        if (other.hasTargetEntindex()) {
          setTargetEntindex(other.getTargetEntindex());
        }
        if (other.hasShowRawValues()) {
          setShowRawValues(other.getShowRawValues());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HPManaAlert parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HPManaAlert) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int playerId_ ;
      /**
       * optional uint32 player_id = 1;
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional uint32 player_id = 1;
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * optional uint32 player_id = 1;
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000001;
        playerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 player_id = 1;
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        onChanged();
        return this;
      }

      private int targetEntindex_ ;
      /**
       * optional uint32 target_entindex = 2;
       */
      public boolean hasTargetEntindex() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional uint32 target_entindex = 2;
       */
      public int getTargetEntindex() {
        return targetEntindex_;
      }
      /**
       * optional uint32 target_entindex = 2;
       */
      public Builder setTargetEntindex(int value) {
        bitField0_ |= 0x00000002;
        targetEntindex_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 target_entindex = 2;
       */
      public Builder clearTargetEntindex() {
        bitField0_ = (bitField0_ & ~0x00000002);
        targetEntindex_ = 0;
        onChanged();
        return this;
      }

      private boolean showRawValues_ ;
      /**
       * optional bool show_raw_values = 3;
       */
      public boolean hasShowRawValues() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional bool show_raw_values = 3;
       */
      public boolean getShowRawValues() {
        return showRawValues_;
      }
      /**
       * optional bool show_raw_values = 3;
       */
      public Builder setShowRawValues(boolean value) {
        bitField0_ |= 0x00000004;
        showRawValues_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool show_raw_values = 3;
       */
      public Builder clearShowRawValues() {
        bitField0_ = (bitField0_ & ~0x00000004);
        showRawValues_ = false;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_HPManaAlert)
    }

    static {
      defaultInstance = new CDOTAUserMsg_HPManaAlert(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_HPManaAlert)
  }

  public interface CDOTAUserMsg_GlyphAlertOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_GlyphAlert)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional uint32 player_id = 1;
     */
    boolean hasPlayerId();
    /**
     * optional uint32 player_id = 1;
     */
    int getPlayerId();

    /**
     * optional bool negative = 2;
     */
    boolean hasNegative();
    /**
     * optional bool negative = 2;
     */
    boolean getNegative();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_GlyphAlert}
   */
  public static final class CDOTAUserMsg_GlyphAlert extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_GlyphAlert)
      CDOTAUserMsg_GlyphAlertOrBuilder {
    // Use CDOTAUserMsg_GlyphAlert.newBuilder() to construct.
    private CDOTAUserMsg_GlyphAlert(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_GlyphAlert(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_GlyphAlert defaultInstance;
    public static CDOTAUserMsg_GlyphAlert getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_GlyphAlert getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_GlyphAlert(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              playerId_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              negative_ = input.readBool();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_GlyphAlert_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_GlyphAlert_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GlyphAlert.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GlyphAlert.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_GlyphAlert parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_GlyphAlert(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int PLAYER_ID_FIELD_NUMBER = 1;
    private int playerId_;
    /**
     * optional uint32 player_id = 1;
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional uint32 player_id = 1;
     */
    public int getPlayerId() {
      return playerId_;
    }

    public static final int NEGATIVE_FIELD_NUMBER = 2;
    private boolean negative_;
    /**
     * optional bool negative = 2;
     */
    public boolean hasNegative() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional bool negative = 2;
     */
    public boolean getNegative() {
      return negative_;
    }

    private void initFields() {
      playerId_ = 0;
      negative_ = false;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBool(2, negative_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(2, negative_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GlyphAlert parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GlyphAlert parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GlyphAlert parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GlyphAlert parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GlyphAlert parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GlyphAlert parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GlyphAlert parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GlyphAlert parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GlyphAlert parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GlyphAlert parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GlyphAlert prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_GlyphAlert}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_GlyphAlert)
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GlyphAlertOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_GlyphAlert_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_GlyphAlert_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GlyphAlert.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GlyphAlert.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GlyphAlert.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        negative_ = false;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_GlyphAlert_descriptor;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GlyphAlert getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GlyphAlert.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GlyphAlert build() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GlyphAlert result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GlyphAlert buildPartial() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GlyphAlert result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GlyphAlert(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.playerId_ = playerId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.negative_ = negative_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GlyphAlert) {
          return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GlyphAlert)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GlyphAlert other) {
        if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GlyphAlert.getDefaultInstance()) return this;
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        if (other.hasNegative()) {
          setNegative(other.getNegative());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GlyphAlert parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GlyphAlert) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int playerId_ ;
      /**
       * optional uint32 player_id = 1;
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional uint32 player_id = 1;
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * optional uint32 player_id = 1;
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000001;
        playerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 player_id = 1;
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        onChanged();
        return this;
      }

      private boolean negative_ ;
      /**
       * optional bool negative = 2;
       */
      public boolean hasNegative() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional bool negative = 2;
       */
      public boolean getNegative() {
        return negative_;
      }
      /**
       * optional bool negative = 2;
       */
      public Builder setNegative(boolean value) {
        bitField0_ |= 0x00000002;
        negative_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool negative = 2;
       */
      public Builder clearNegative() {
        bitField0_ = (bitField0_ & ~0x00000002);
        negative_ = false;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_GlyphAlert)
    }

    static {
      defaultInstance = new CDOTAUserMsg_GlyphAlert(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_GlyphAlert)
  }

  public interface CDOTAUserMsg_RadarAlertOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_RadarAlert)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional uint32 player_id = 1;
     */
    boolean hasPlayerId();
    /**
     * optional uint32 player_id = 1;
     */
    int getPlayerId();

    /**
     * optional bool negative = 2;
     */
    boolean hasNegative();
    /**
     * optional bool negative = 2;
     */
    boolean getNegative();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_RadarAlert}
   */
  public static final class CDOTAUserMsg_RadarAlert extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_RadarAlert)
      CDOTAUserMsg_RadarAlertOrBuilder {
    // Use CDOTAUserMsg_RadarAlert.newBuilder() to construct.
    private CDOTAUserMsg_RadarAlert(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_RadarAlert(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_RadarAlert defaultInstance;
    public static CDOTAUserMsg_RadarAlert getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_RadarAlert getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_RadarAlert(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              playerId_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              negative_ = input.readBool();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_RadarAlert_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_RadarAlert_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_RadarAlert.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_RadarAlert.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_RadarAlert parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_RadarAlert(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int PLAYER_ID_FIELD_NUMBER = 1;
    private int playerId_;
    /**
     * optional uint32 player_id = 1;
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional uint32 player_id = 1;
     */
    public int getPlayerId() {
      return playerId_;
    }

    public static final int NEGATIVE_FIELD_NUMBER = 2;
    private boolean negative_;
    /**
     * optional bool negative = 2;
     */
    public boolean hasNegative() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional bool negative = 2;
     */
    public boolean getNegative() {
      return negative_;
    }

    private void initFields() {
      playerId_ = 0;
      negative_ = false;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBool(2, negative_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(2, negative_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_RadarAlert parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_RadarAlert parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_RadarAlert parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_RadarAlert parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_RadarAlert parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_RadarAlert parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_RadarAlert parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_RadarAlert parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_RadarAlert parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_RadarAlert parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_RadarAlert prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_RadarAlert}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_RadarAlert)
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_RadarAlertOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_RadarAlert_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_RadarAlert_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_RadarAlert.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_RadarAlert.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_RadarAlert.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        negative_ = false;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_RadarAlert_descriptor;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_RadarAlert getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_RadarAlert.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_RadarAlert build() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_RadarAlert result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_RadarAlert buildPartial() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_RadarAlert result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_RadarAlert(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.playerId_ = playerId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.negative_ = negative_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_RadarAlert) {
          return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_RadarAlert)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_RadarAlert other) {
        if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_RadarAlert.getDefaultInstance()) return this;
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        if (other.hasNegative()) {
          setNegative(other.getNegative());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_RadarAlert parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_RadarAlert) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int playerId_ ;
      /**
       * optional uint32 player_id = 1;
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional uint32 player_id = 1;
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * optional uint32 player_id = 1;
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000001;
        playerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 player_id = 1;
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        onChanged();
        return this;
      }

      private boolean negative_ ;
      /**
       * optional bool negative = 2;
       */
      public boolean hasNegative() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional bool negative = 2;
       */
      public boolean getNegative() {
        return negative_;
      }
      /**
       * optional bool negative = 2;
       */
      public Builder setNegative(boolean value) {
        bitField0_ |= 0x00000002;
        negative_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool negative = 2;
       */
      public Builder clearNegative() {
        bitField0_ = (bitField0_ & ~0x00000002);
        negative_ = false;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_RadarAlert)
    }

    static {
      defaultInstance = new CDOTAUserMsg_RadarAlert(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_RadarAlert)
  }

  public interface CDOTAUserMsg_WillPurchaseAlertOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_WillPurchaseAlert)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional int32 item_ability_id = 1;
     */
    boolean hasItemAbilityId();
    /**
     * optional int32 item_ability_id = 1;
     */
    int getItemAbilityId();

    /**
     * optional int32 player_id = 2;
     */
    boolean hasPlayerId();
    /**
     * optional int32 player_id = 2;
     */
    int getPlayerId();

    /**
     * optional uint32 gold_remaining = 3;
     */
    boolean hasGoldRemaining();
    /**
     * optional uint32 gold_remaining = 3;
     */
    int getGoldRemaining();

    /**
     * optional int32 suggestion_player_id = 4;
     */
    boolean hasSuggestionPlayerId();
    /**
     * optional int32 suggestion_player_id = 4;
     */
    int getSuggestionPlayerId();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_WillPurchaseAlert}
   */
  public static final class CDOTAUserMsg_WillPurchaseAlert extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_WillPurchaseAlert)
      CDOTAUserMsg_WillPurchaseAlertOrBuilder {
    // Use CDOTAUserMsg_WillPurchaseAlert.newBuilder() to construct.
    private CDOTAUserMsg_WillPurchaseAlert(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_WillPurchaseAlert(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_WillPurchaseAlert defaultInstance;
    public static CDOTAUserMsg_WillPurchaseAlert getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_WillPurchaseAlert getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_WillPurchaseAlert(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              itemAbilityId_ = input.readInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              playerId_ = input.readInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              goldRemaining_ = input.readUInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              suggestionPlayerId_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_WillPurchaseAlert_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_WillPurchaseAlert_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WillPurchaseAlert.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WillPurchaseAlert.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_WillPurchaseAlert parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_WillPurchaseAlert(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int ITEM_ABILITY_ID_FIELD_NUMBER = 1;
    private int itemAbilityId_;
    /**
     * optional int32 item_ability_id = 1;
     */
    public boolean hasItemAbilityId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 item_ability_id = 1;
     */
    public int getItemAbilityId() {
      return itemAbilityId_;
    }

    public static final int PLAYER_ID_FIELD_NUMBER = 2;
    private int playerId_;
    /**
     * optional int32 player_id = 2;
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional int32 player_id = 2;
     */
    public int getPlayerId() {
      return playerId_;
    }

    public static final int GOLD_REMAINING_FIELD_NUMBER = 3;
    private int goldRemaining_;
    /**
     * optional uint32 gold_remaining = 3;
     */
    public boolean hasGoldRemaining() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional uint32 gold_remaining = 3;
     */
    public int getGoldRemaining() {
      return goldRemaining_;
    }

    public static final int SUGGESTION_PLAYER_ID_FIELD_NUMBER = 4;
    private int suggestionPlayerId_;
    /**
     * optional int32 suggestion_player_id = 4;
     */
    public boolean hasSuggestionPlayerId() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional int32 suggestion_player_id = 4;
     */
    public int getSuggestionPlayerId() {
      return suggestionPlayerId_;
    }

    private void initFields() {
      itemAbilityId_ = 0;
      playerId_ = 0;
      goldRemaining_ = 0;
      suggestionPlayerId_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, itemAbilityId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, playerId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeUInt32(3, goldRemaining_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeInt32(4, suggestionPlayerId_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, itemAbilityId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, playerId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, goldRemaining_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, suggestionPlayerId_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WillPurchaseAlert parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WillPurchaseAlert parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WillPurchaseAlert parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WillPurchaseAlert parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WillPurchaseAlert parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WillPurchaseAlert parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WillPurchaseAlert parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WillPurchaseAlert parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WillPurchaseAlert parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WillPurchaseAlert parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WillPurchaseAlert prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_WillPurchaseAlert}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_WillPurchaseAlert)
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WillPurchaseAlertOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_WillPurchaseAlert_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_WillPurchaseAlert_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WillPurchaseAlert.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WillPurchaseAlert.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WillPurchaseAlert.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        itemAbilityId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        goldRemaining_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        suggestionPlayerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_WillPurchaseAlert_descriptor;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WillPurchaseAlert getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WillPurchaseAlert.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WillPurchaseAlert build() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WillPurchaseAlert result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WillPurchaseAlert buildPartial() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WillPurchaseAlert result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WillPurchaseAlert(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.itemAbilityId_ = itemAbilityId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.playerId_ = playerId_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.goldRemaining_ = goldRemaining_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.suggestionPlayerId_ = suggestionPlayerId_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WillPurchaseAlert) {
          return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WillPurchaseAlert)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WillPurchaseAlert other) {
        if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WillPurchaseAlert.getDefaultInstance()) return this;
        if (other.hasItemAbilityId()) {
          setItemAbilityId(other.getItemAbilityId());
        }
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        if (other.hasGoldRemaining()) {
          setGoldRemaining(other.getGoldRemaining());
        }
        if (other.hasSuggestionPlayerId()) {
          setSuggestionPlayerId(other.getSuggestionPlayerId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WillPurchaseAlert parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WillPurchaseAlert) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int itemAbilityId_ ;
      /**
       * optional int32 item_ability_id = 1;
       */
      public boolean hasItemAbilityId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 item_ability_id = 1;
       */
      public int getItemAbilityId() {
        return itemAbilityId_;
      }
      /**
       * optional int32 item_ability_id = 1;
       */
      public Builder setItemAbilityId(int value) {
        bitField0_ |= 0x00000001;
        itemAbilityId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 item_ability_id = 1;
       */
      public Builder clearItemAbilityId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        itemAbilityId_ = 0;
        onChanged();
        return this;
      }

      private int playerId_ ;
      /**
       * optional int32 player_id = 2;
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional int32 player_id = 2;
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * optional int32 player_id = 2;
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000002;
        playerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 player_id = 2;
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        playerId_ = 0;
        onChanged();
        return this;
      }

      private int goldRemaining_ ;
      /**
       * optional uint32 gold_remaining = 3;
       */
      public boolean hasGoldRemaining() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional uint32 gold_remaining = 3;
       */
      public int getGoldRemaining() {
        return goldRemaining_;
      }
      /**
       * optional uint32 gold_remaining = 3;
       */
      public Builder setGoldRemaining(int value) {
        bitField0_ |= 0x00000004;
        goldRemaining_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 gold_remaining = 3;
       */
      public Builder clearGoldRemaining() {
        bitField0_ = (bitField0_ & ~0x00000004);
        goldRemaining_ = 0;
        onChanged();
        return this;
      }

      private int suggestionPlayerId_ ;
      /**
       * optional int32 suggestion_player_id = 4;
       */
      public boolean hasSuggestionPlayerId() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional int32 suggestion_player_id = 4;
       */
      public int getSuggestionPlayerId() {
        return suggestionPlayerId_;
      }
      /**
       * optional int32 suggestion_player_id = 4;
       */
      public Builder setSuggestionPlayerId(int value) {
        bitField0_ |= 0x00000008;
        suggestionPlayerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 suggestion_player_id = 4;
       */
      public Builder clearSuggestionPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000008);
        suggestionPlayerId_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_WillPurchaseAlert)
    }

    static {
      defaultInstance = new CDOTAUserMsg_WillPurchaseAlert(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_WillPurchaseAlert)
  }

  public interface CDOTAUserMsg_EmptyTeleportAlertOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_EmptyTeleportAlert)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional int32 source_player_id = 1;
     */
    boolean hasSourcePlayerId();
    /**
     * optional int32 source_player_id = 1;
     */
    int getSourcePlayerId();

    /**
     * optional int32 target_player_id = 2;
     */
    boolean hasTargetPlayerId();
    /**
     * optional int32 target_player_id = 2;
     */
    int getTargetPlayerId();

    /**
     * optional int32 cooldown_seconds = 3;
     */
    boolean hasCooldownSeconds();
    /**
     * optional int32 cooldown_seconds = 3;
     */
    int getCooldownSeconds();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_EmptyTeleportAlert}
   */
  public static final class CDOTAUserMsg_EmptyTeleportAlert extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_EmptyTeleportAlert)
      CDOTAUserMsg_EmptyTeleportAlertOrBuilder {
    // Use CDOTAUserMsg_EmptyTeleportAlert.newBuilder() to construct.
    private CDOTAUserMsg_EmptyTeleportAlert(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_EmptyTeleportAlert(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_EmptyTeleportAlert defaultInstance;
    public static CDOTAUserMsg_EmptyTeleportAlert getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_EmptyTeleportAlert getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_EmptyTeleportAlert(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              sourcePlayerId_ = input.readInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              targetPlayerId_ = input.readInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              cooldownSeconds_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_EmptyTeleportAlert_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_EmptyTeleportAlert_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_EmptyTeleportAlert.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_EmptyTeleportAlert.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_EmptyTeleportAlert parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_EmptyTeleportAlert(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int SOURCE_PLAYER_ID_FIELD_NUMBER = 1;
    private int sourcePlayerId_;
    /**
     * optional int32 source_player_id = 1;
     */
    public boolean hasSourcePlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 source_player_id = 1;
     */
    public int getSourcePlayerId() {
      return sourcePlayerId_;
    }

    public static final int TARGET_PLAYER_ID_FIELD_NUMBER = 2;
    private int targetPlayerId_;
    /**
     * optional int32 target_player_id = 2;
     */
    public boolean hasTargetPlayerId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional int32 target_player_id = 2;
     */
    public int getTargetPlayerId() {
      return targetPlayerId_;
    }

    public static final int COOLDOWN_SECONDS_FIELD_NUMBER = 3;
    private int cooldownSeconds_;
    /**
     * optional int32 cooldown_seconds = 3;
     */
    public boolean hasCooldownSeconds() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional int32 cooldown_seconds = 3;
     */
    public int getCooldownSeconds() {
      return cooldownSeconds_;
    }

    private void initFields() {
      sourcePlayerId_ = 0;
      targetPlayerId_ = 0;
      cooldownSeconds_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, sourcePlayerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, targetPlayerId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeInt32(3, cooldownSeconds_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, sourcePlayerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, targetPlayerId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, cooldownSeconds_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_EmptyTeleportAlert parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_EmptyTeleportAlert parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_EmptyTeleportAlert parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_EmptyTeleportAlert parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_EmptyTeleportAlert parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_EmptyTeleportAlert parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_EmptyTeleportAlert parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_EmptyTeleportAlert parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_EmptyTeleportAlert parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_EmptyTeleportAlert parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_EmptyTeleportAlert prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_EmptyTeleportAlert}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_EmptyTeleportAlert)
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_EmptyTeleportAlertOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_EmptyTeleportAlert_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_EmptyTeleportAlert_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_EmptyTeleportAlert.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_EmptyTeleportAlert.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_EmptyTeleportAlert.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        sourcePlayerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        targetPlayerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        cooldownSeconds_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_EmptyTeleportAlert_descriptor;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_EmptyTeleportAlert getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_EmptyTeleportAlert.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_EmptyTeleportAlert build() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_EmptyTeleportAlert result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_EmptyTeleportAlert buildPartial() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_EmptyTeleportAlert result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_EmptyTeleportAlert(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.sourcePlayerId_ = sourcePlayerId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.targetPlayerId_ = targetPlayerId_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.cooldownSeconds_ = cooldownSeconds_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_EmptyTeleportAlert) {
          return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_EmptyTeleportAlert)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_EmptyTeleportAlert other) {
        if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_EmptyTeleportAlert.getDefaultInstance()) return this;
        if (other.hasSourcePlayerId()) {
          setSourcePlayerId(other.getSourcePlayerId());
        }
        if (other.hasTargetPlayerId()) {
          setTargetPlayerId(other.getTargetPlayerId());
        }
        if (other.hasCooldownSeconds()) {
          setCooldownSeconds(other.getCooldownSeconds());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_EmptyTeleportAlert parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_EmptyTeleportAlert) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int sourcePlayerId_ ;
      /**
       * optional int32 source_player_id = 1;
       */
      public boolean hasSourcePlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 source_player_id = 1;
       */
      public int getSourcePlayerId() {
        return sourcePlayerId_;
      }
      /**
       * optional int32 source_player_id = 1;
       */
      public Builder setSourcePlayerId(int value) {
        bitField0_ |= 0x00000001;
        sourcePlayerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 source_player_id = 1;
       */
      public Builder clearSourcePlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        sourcePlayerId_ = 0;
        onChanged();
        return this;
      }

      private int targetPlayerId_ ;
      /**
       * optional int32 target_player_id = 2;
       */
      public boolean hasTargetPlayerId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional int32 target_player_id = 2;
       */
      public int getTargetPlayerId() {
        return targetPlayerId_;
      }
      /**
       * optional int32 target_player_id = 2;
       */
      public Builder setTargetPlayerId(int value) {
        bitField0_ |= 0x00000002;
        targetPlayerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 target_player_id = 2;
       */
      public Builder clearTargetPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        targetPlayerId_ = 0;
        onChanged();
        return this;
      }

      private int cooldownSeconds_ ;
      /**
       * optional int32 cooldown_seconds = 3;
       */
      public boolean hasCooldownSeconds() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional int32 cooldown_seconds = 3;
       */
      public int getCooldownSeconds() {
        return cooldownSeconds_;
      }
      /**
       * optional int32 cooldown_seconds = 3;
       */
      public Builder setCooldownSeconds(int value) {
        bitField0_ |= 0x00000004;
        cooldownSeconds_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 cooldown_seconds = 3;
       */
      public Builder clearCooldownSeconds() {
        bitField0_ = (bitField0_ & ~0x00000004);
        cooldownSeconds_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_EmptyTeleportAlert)
    }

    static {
      defaultInstance = new CDOTAUserMsg_EmptyTeleportAlert(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_EmptyTeleportAlert)
  }

  public interface CDOTAUserMsg_MarsArenaOfBloodAttackOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_MarsArenaOfBloodAttack)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional int32 source_ehandle = 1;
     */
    boolean hasSourceEhandle();
    /**
     * optional int32 source_ehandle = 1;
     */
    int getSourceEhandle();

    /**
     * optional int32 target_ehandle = 2;
     */
    boolean hasTargetEhandle();
    /**
     * optional int32 target_ehandle = 2;
     */
    int getTargetEhandle();

    /**
     * optional int32 warrior_index = 3;
     */
    boolean hasWarriorIndex();
    /**
     * optional int32 warrior_index = 3;
     */
    int getWarriorIndex();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_MarsArenaOfBloodAttack}
   */
  public static final class CDOTAUserMsg_MarsArenaOfBloodAttack extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_MarsArenaOfBloodAttack)
      CDOTAUserMsg_MarsArenaOfBloodAttackOrBuilder {
    // Use CDOTAUserMsg_MarsArenaOfBloodAttack.newBuilder() to construct.
    private CDOTAUserMsg_MarsArenaOfBloodAttack(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_MarsArenaOfBloodAttack(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_MarsArenaOfBloodAttack defaultInstance;
    public static CDOTAUserMsg_MarsArenaOfBloodAttack getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_MarsArenaOfBloodAttack getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_MarsArenaOfBloodAttack(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              sourceEhandle_ = input.readInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              targetEhandle_ = input.readInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              warriorIndex_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_MarsArenaOfBloodAttack_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_MarsArenaOfBloodAttack_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MarsArenaOfBloodAttack.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MarsArenaOfBloodAttack.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_MarsArenaOfBloodAttack parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_MarsArenaOfBloodAttack(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int SOURCE_EHANDLE_FIELD_NUMBER = 1;
    private int sourceEhandle_;
    /**
     * optional int32 source_ehandle = 1;
     */
    public boolean hasSourceEhandle() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 source_ehandle = 1;
     */
    public int getSourceEhandle() {
      return sourceEhandle_;
    }

    public static final int TARGET_EHANDLE_FIELD_NUMBER = 2;
    private int targetEhandle_;
    /**
     * optional int32 target_ehandle = 2;
     */
    public boolean hasTargetEhandle() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional int32 target_ehandle = 2;
     */
    public int getTargetEhandle() {
      return targetEhandle_;
    }

    public static final int WARRIOR_INDEX_FIELD_NUMBER = 3;
    private int warriorIndex_;
    /**
     * optional int32 warrior_index = 3;
     */
    public boolean hasWarriorIndex() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional int32 warrior_index = 3;
     */
    public int getWarriorIndex() {
      return warriorIndex_;
    }

    private void initFields() {
      sourceEhandle_ = 0;
      targetEhandle_ = 0;
      warriorIndex_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, sourceEhandle_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, targetEhandle_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeInt32(3, warriorIndex_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, sourceEhandle_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, targetEhandle_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, warriorIndex_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MarsArenaOfBloodAttack parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MarsArenaOfBloodAttack parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MarsArenaOfBloodAttack parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MarsArenaOfBloodAttack parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MarsArenaOfBloodAttack parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MarsArenaOfBloodAttack parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MarsArenaOfBloodAttack parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MarsArenaOfBloodAttack parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MarsArenaOfBloodAttack parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MarsArenaOfBloodAttack parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MarsArenaOfBloodAttack prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_MarsArenaOfBloodAttack}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_MarsArenaOfBloodAttack)
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MarsArenaOfBloodAttackOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_MarsArenaOfBloodAttack_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_MarsArenaOfBloodAttack_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MarsArenaOfBloodAttack.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MarsArenaOfBloodAttack.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MarsArenaOfBloodAttack.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        sourceEhandle_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        targetEhandle_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        warriorIndex_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_MarsArenaOfBloodAttack_descriptor;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MarsArenaOfBloodAttack getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MarsArenaOfBloodAttack.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MarsArenaOfBloodAttack build() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MarsArenaOfBloodAttack result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MarsArenaOfBloodAttack buildPartial() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MarsArenaOfBloodAttack result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MarsArenaOfBloodAttack(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.sourceEhandle_ = sourceEhandle_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.targetEhandle_ = targetEhandle_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.warriorIndex_ = warriorIndex_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MarsArenaOfBloodAttack) {
          return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MarsArenaOfBloodAttack)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MarsArenaOfBloodAttack other) {
        if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MarsArenaOfBloodAttack.getDefaultInstance()) return this;
        if (other.hasSourceEhandle()) {
          setSourceEhandle(other.getSourceEhandle());
        }
        if (other.hasTargetEhandle()) {
          setTargetEhandle(other.getTargetEhandle());
        }
        if (other.hasWarriorIndex()) {
          setWarriorIndex(other.getWarriorIndex());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MarsArenaOfBloodAttack parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MarsArenaOfBloodAttack) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int sourceEhandle_ ;
      /**
       * optional int32 source_ehandle = 1;
       */
      public boolean hasSourceEhandle() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 source_ehandle = 1;
       */
      public int getSourceEhandle() {
        return sourceEhandle_;
      }
      /**
       * optional int32 source_ehandle = 1;
       */
      public Builder setSourceEhandle(int value) {
        bitField0_ |= 0x00000001;
        sourceEhandle_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 source_ehandle = 1;
       */
      public Builder clearSourceEhandle() {
        bitField0_ = (bitField0_ & ~0x00000001);
        sourceEhandle_ = 0;
        onChanged();
        return this;
      }

      private int targetEhandle_ ;
      /**
       * optional int32 target_ehandle = 2;
       */
      public boolean hasTargetEhandle() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional int32 target_ehandle = 2;
       */
      public int getTargetEhandle() {
        return targetEhandle_;
      }
      /**
       * optional int32 target_ehandle = 2;
       */
      public Builder setTargetEhandle(int value) {
        bitField0_ |= 0x00000002;
        targetEhandle_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 target_ehandle = 2;
       */
      public Builder clearTargetEhandle() {
        bitField0_ = (bitField0_ & ~0x00000002);
        targetEhandle_ = 0;
        onChanged();
        return this;
      }

      private int warriorIndex_ ;
      /**
       * optional int32 warrior_index = 3;
       */
      public boolean hasWarriorIndex() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional int32 warrior_index = 3;
       */
      public int getWarriorIndex() {
        return warriorIndex_;
      }
      /**
       * optional int32 warrior_index = 3;
       */
      public Builder setWarriorIndex(int value) {
        bitField0_ |= 0x00000004;
        warriorIndex_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 warrior_index = 3;
       */
      public Builder clearWarriorIndex() {
        bitField0_ = (bitField0_ & ~0x00000004);
        warriorIndex_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_MarsArenaOfBloodAttack)
    }

    static {
      defaultInstance = new CDOTAUserMsg_MarsArenaOfBloodAttack(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_MarsArenaOfBloodAttack)
  }

  public interface CDOTAEntityMsg_InvokerSpellCastOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAEntityMsg_InvokerSpellCast)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional .CEntityMsg entity_msg = 1;
     */
    boolean hasEntityMsg();
    /**
     * optional .CEntityMsg entity_msg = 1;
     */
    skadistats.clarity.wire.common.proto.NetworkBaseTypes.CEntityMsg getEntityMsg();
    /**
     * optional .CEntityMsg entity_msg = 1;
     */
    skadistats.clarity.wire.common.proto.NetworkBaseTypes.CEntityMsgOrBuilder getEntityMsgOrBuilder();

    /**
     * optional int32 cast_activity = 2;
     */
    boolean hasCastActivity();
    /**
     * optional int32 cast_activity = 2;
     */
    int getCastActivity();
  }
  /**
   * Protobuf type {@code CDOTAEntityMsg_InvokerSpellCast}
   */
  public static final class CDOTAEntityMsg_InvokerSpellCast extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAEntityMsg_InvokerSpellCast)
      CDOTAEntityMsg_InvokerSpellCastOrBuilder {
    // Use CDOTAEntityMsg_InvokerSpellCast.newBuilder() to construct.
    private CDOTAEntityMsg_InvokerSpellCast(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAEntityMsg_InvokerSpellCast(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAEntityMsg_InvokerSpellCast defaultInstance;
    public static CDOTAEntityMsg_InvokerSpellCast getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAEntityMsg_InvokerSpellCast getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAEntityMsg_InvokerSpellCast(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              skadistats.clarity.wire.common.proto.NetworkBaseTypes.CEntityMsg.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) == 0x00000001)) {
                subBuilder = entityMsg_.toBuilder();
              }
              entityMsg_ = input.readMessage(skadistats.clarity.wire.common.proto.NetworkBaseTypes.CEntityMsg.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(entityMsg_);
                entityMsg_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              castActivity_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAEntityMsg_InvokerSpellCast_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAEntityMsg_InvokerSpellCast_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAEntityMsg_InvokerSpellCast.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAEntityMsg_InvokerSpellCast.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAEntityMsg_InvokerSpellCast parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAEntityMsg_InvokerSpellCast(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int ENTITY_MSG_FIELD_NUMBER = 1;
    private skadistats.clarity.wire.common.proto.NetworkBaseTypes.CEntityMsg entityMsg_;
    /**
     * optional .CEntityMsg entity_msg = 1;
     */
    public boolean hasEntityMsg() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional .CEntityMsg entity_msg = 1;
     */
    public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CEntityMsg getEntityMsg() {
      return entityMsg_;
    }
    /**
     * optional .CEntityMsg entity_msg = 1;
     */
    public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CEntityMsgOrBuilder getEntityMsgOrBuilder() {
      return entityMsg_;
    }

    public static final int CAST_ACTIVITY_FIELD_NUMBER = 2;
    private int castActivity_;
    /**
     * optional int32 cast_activity = 2;
     */
    public boolean hasCastActivity() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional int32 cast_activity = 2;
     */
    public int getCastActivity() {
      return castActivity_;
    }

    private void initFields() {
      entityMsg_ = skadistats.clarity.wire.common.proto.NetworkBaseTypes.CEntityMsg.getDefaultInstance();
      castActivity_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, entityMsg_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, castActivity_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, entityMsg_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, castActivity_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAEntityMsg_InvokerSpellCast parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAEntityMsg_InvokerSpellCast parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAEntityMsg_InvokerSpellCast parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAEntityMsg_InvokerSpellCast parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAEntityMsg_InvokerSpellCast parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAEntityMsg_InvokerSpellCast parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAEntityMsg_InvokerSpellCast parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAEntityMsg_InvokerSpellCast parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAEntityMsg_InvokerSpellCast parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAEntityMsg_InvokerSpellCast parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAEntityMsg_InvokerSpellCast prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAEntityMsg_InvokerSpellCast}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAEntityMsg_InvokerSpellCast)
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAEntityMsg_InvokerSpellCastOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAEntityMsg_InvokerSpellCast_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAEntityMsg_InvokerSpellCast_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAEntityMsg_InvokerSpellCast.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAEntityMsg_InvokerSpellCast.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAEntityMsg_InvokerSpellCast.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getEntityMsgFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        if (entityMsgBuilder_ == null) {
          entityMsg_ = skadistats.clarity.wire.common.proto.NetworkBaseTypes.CEntityMsg.getDefaultInstance();
        } else {
          entityMsgBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        castActivity_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAEntityMsg_InvokerSpellCast_descriptor;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAEntityMsg_InvokerSpellCast getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAEntityMsg_InvokerSpellCast.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAEntityMsg_InvokerSpellCast build() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAEntityMsg_InvokerSpellCast result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAEntityMsg_InvokerSpellCast buildPartial() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAEntityMsg_InvokerSpellCast result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAEntityMsg_InvokerSpellCast(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (entityMsgBuilder_ == null) {
          result.entityMsg_ = entityMsg_;
        } else {
          result.entityMsg_ = entityMsgBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.castActivity_ = castActivity_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAEntityMsg_InvokerSpellCast) {
          return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAEntityMsg_InvokerSpellCast)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAEntityMsg_InvokerSpellCast other) {
        if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAEntityMsg_InvokerSpellCast.getDefaultInstance()) return this;
        if (other.hasEntityMsg()) {
          mergeEntityMsg(other.getEntityMsg());
        }
        if (other.hasCastActivity()) {
          setCastActivity(other.getCastActivity());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAEntityMsg_InvokerSpellCast parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAEntityMsg_InvokerSpellCast) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private skadistats.clarity.wire.common.proto.NetworkBaseTypes.CEntityMsg entityMsg_ = skadistats.clarity.wire.common.proto.NetworkBaseTypes.CEntityMsg.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.common.proto.NetworkBaseTypes.CEntityMsg, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CEntityMsg.Builder, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CEntityMsgOrBuilder> entityMsgBuilder_;
      /**
       * optional .CEntityMsg entity_msg = 1;
       */
      public boolean hasEntityMsg() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional .CEntityMsg entity_msg = 1;
       */
      public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CEntityMsg getEntityMsg() {
        if (entityMsgBuilder_ == null) {
          return entityMsg_;
        } else {
          return entityMsgBuilder_.getMessage();
        }
      }
      /**
       * optional .CEntityMsg entity_msg = 1;
       */
      public Builder setEntityMsg(skadistats.clarity.wire.common.proto.NetworkBaseTypes.CEntityMsg value) {
        if (entityMsgBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          entityMsg_ = value;
          onChanged();
        } else {
          entityMsgBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * optional .CEntityMsg entity_msg = 1;
       */
      public Builder setEntityMsg(
          skadistats.clarity.wire.common.proto.NetworkBaseTypes.CEntityMsg.Builder builderForValue) {
        if (entityMsgBuilder_ == null) {
          entityMsg_ = builderForValue.build();
          onChanged();
        } else {
          entityMsgBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * optional .CEntityMsg entity_msg = 1;
       */
      public Builder mergeEntityMsg(skadistats.clarity.wire.common.proto.NetworkBaseTypes.CEntityMsg value) {
        if (entityMsgBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001) &&
              entityMsg_ != skadistats.clarity.wire.common.proto.NetworkBaseTypes.CEntityMsg.getDefaultInstance()) {
            entityMsg_ =
              skadistats.clarity.wire.common.proto.NetworkBaseTypes.CEntityMsg.newBuilder(entityMsg_).mergeFrom(value).buildPartial();
          } else {
            entityMsg_ = value;
          }
          onChanged();
        } else {
          entityMsgBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * optional .CEntityMsg entity_msg = 1;
       */
      public Builder clearEntityMsg() {
        if (entityMsgBuilder_ == null) {
          entityMsg_ = skadistats.clarity.wire.common.proto.NetworkBaseTypes.CEntityMsg.getDefaultInstance();
          onChanged();
        } else {
          entityMsgBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * optional .CEntityMsg entity_msg = 1;
       */
      public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CEntityMsg.Builder getEntityMsgBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getEntityMsgFieldBuilder().getBuilder();
      }
      /**
       * optional .CEntityMsg entity_msg = 1;
       */
      public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CEntityMsgOrBuilder getEntityMsgOrBuilder() {
        if (entityMsgBuilder_ != null) {
          return entityMsgBuilder_.getMessageOrBuilder();
        } else {
          return entityMsg_;
        }
      }
      /**
       * optional .CEntityMsg entity_msg = 1;
       */
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.common.proto.NetworkBaseTypes.CEntityMsg, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CEntityMsg.Builder, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CEntityMsgOrBuilder> 
          getEntityMsgFieldBuilder() {
        if (entityMsgBuilder_ == null) {
          entityMsgBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              skadistats.clarity.wire.common.proto.NetworkBaseTypes.CEntityMsg, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CEntityMsg.Builder, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CEntityMsgOrBuilder>(
                  getEntityMsg(),
                  getParentForChildren(),
                  isClean());
          entityMsg_ = null;
        }
        return entityMsgBuilder_;
      }

      private int castActivity_ ;
      /**
       * optional int32 cast_activity = 2;
       */
      public boolean hasCastActivity() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional int32 cast_activity = 2;
       */
      public int getCastActivity() {
        return castActivity_;
      }
      /**
       * optional int32 cast_activity = 2;
       */
      public Builder setCastActivity(int value) {
        bitField0_ |= 0x00000002;
        castActivity_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 cast_activity = 2;
       */
      public Builder clearCastActivity() {
        bitField0_ = (bitField0_ & ~0x00000002);
        castActivity_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAEntityMsg_InvokerSpellCast)
    }

    static {
      defaultInstance = new CDOTAEntityMsg_InvokerSpellCast(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAEntityMsg_InvokerSpellCast)
  }

  public interface CDOTAUserMsg_QuickBuyAlertOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_QuickBuyAlert)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional int32 player_id = 1;
     */
    boolean hasPlayerId();
    /**
     * optional int32 player_id = 1;
     */
    int getPlayerId();

    /**
     * optional int32 item_ability_id = 2;
     */
    boolean hasItemAbilityId();
    /**
     * optional int32 item_ability_id = 2;
     */
    int getItemAbilityId();

    /**
     * optional int32 gold_cost = 3;
     */
    boolean hasGoldCost();
    /**
     * optional int32 gold_cost = 3;
     */
    int getGoldCost();

    /**
     * optional int32 item_cooldown_seconds = 4;
     */
    boolean hasItemCooldownSeconds();
    /**
     * optional int32 item_cooldown_seconds = 4;
     */
    int getItemCooldownSeconds();

    /**
     * optional bool show_buyback = 5;
     */
    boolean hasShowBuyback();
    /**
     * optional bool show_buyback = 5;
     */
    boolean getShowBuyback();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_QuickBuyAlert}
   */
  public static final class CDOTAUserMsg_QuickBuyAlert extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_QuickBuyAlert)
      CDOTAUserMsg_QuickBuyAlertOrBuilder {
    // Use CDOTAUserMsg_QuickBuyAlert.newBuilder() to construct.
    private CDOTAUserMsg_QuickBuyAlert(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_QuickBuyAlert(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_QuickBuyAlert defaultInstance;
    public static CDOTAUserMsg_QuickBuyAlert getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_QuickBuyAlert getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_QuickBuyAlert(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              playerId_ = input.readInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              itemAbilityId_ = input.readInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              goldCost_ = input.readInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              itemCooldownSeconds_ = input.readInt32();
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              showBuyback_ = input.readBool();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_QuickBuyAlert_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_QuickBuyAlert_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_QuickBuyAlert.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_QuickBuyAlert.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_QuickBuyAlert parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_QuickBuyAlert(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int PLAYER_ID_FIELD_NUMBER = 1;
    private int playerId_;
    /**
     * optional int32 player_id = 1;
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 player_id = 1;
     */
    public int getPlayerId() {
      return playerId_;
    }

    public static final int ITEM_ABILITY_ID_FIELD_NUMBER = 2;
    private int itemAbilityId_;
    /**
     * optional int32 item_ability_id = 2;
     */
    public boolean hasItemAbilityId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional int32 item_ability_id = 2;
     */
    public int getItemAbilityId() {
      return itemAbilityId_;
    }

    public static final int GOLD_COST_FIELD_NUMBER = 3;
    private int goldCost_;
    /**
     * optional int32 gold_cost = 3;
     */
    public boolean hasGoldCost() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional int32 gold_cost = 3;
     */
    public int getGoldCost() {
      return goldCost_;
    }

    public static final int ITEM_COOLDOWN_SECONDS_FIELD_NUMBER = 4;
    private int itemCooldownSeconds_;
    /**
     * optional int32 item_cooldown_seconds = 4;
     */
    public boolean hasItemCooldownSeconds() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional int32 item_cooldown_seconds = 4;
     */
    public int getItemCooldownSeconds() {
      return itemCooldownSeconds_;
    }

    public static final int SHOW_BUYBACK_FIELD_NUMBER = 5;
    private boolean showBuyback_;
    /**
     * optional bool show_buyback = 5;
     */
    public boolean hasShowBuyback() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * optional bool show_buyback = 5;
     */
    public boolean getShowBuyback() {
      return showBuyback_;
    }

    private void initFields() {
      playerId_ = 0;
      itemAbilityId_ = 0;
      goldCost_ = 0;
      itemCooldownSeconds_ = 0;
      showBuyback_ = false;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, itemAbilityId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeInt32(3, goldCost_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeInt32(4, itemCooldownSeconds_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeBool(5, showBuyback_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, itemAbilityId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, goldCost_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, itemCooldownSeconds_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(5, showBuyback_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_QuickBuyAlert parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_QuickBuyAlert parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_QuickBuyAlert parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_QuickBuyAlert parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_QuickBuyAlert parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_QuickBuyAlert parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_QuickBuyAlert parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_QuickBuyAlert parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_QuickBuyAlert parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_QuickBuyAlert parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_QuickBuyAlert prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_QuickBuyAlert}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_QuickBuyAlert)
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_QuickBuyAlertOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_QuickBuyAlert_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_QuickBuyAlert_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_QuickBuyAlert.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_QuickBuyAlert.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_QuickBuyAlert.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        itemAbilityId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        goldCost_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        itemCooldownSeconds_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        showBuyback_ = false;
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_QuickBuyAlert_descriptor;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_QuickBuyAlert getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_QuickBuyAlert.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_QuickBuyAlert build() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_QuickBuyAlert result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_QuickBuyAlert buildPartial() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_QuickBuyAlert result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_QuickBuyAlert(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.playerId_ = playerId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.itemAbilityId_ = itemAbilityId_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.goldCost_ = goldCost_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.itemCooldownSeconds_ = itemCooldownSeconds_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.showBuyback_ = showBuyback_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_QuickBuyAlert) {
          return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_QuickBuyAlert)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_QuickBuyAlert other) {
        if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_QuickBuyAlert.getDefaultInstance()) return this;
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        if (other.hasItemAbilityId()) {
          setItemAbilityId(other.getItemAbilityId());
        }
        if (other.hasGoldCost()) {
          setGoldCost(other.getGoldCost());
        }
        if (other.hasItemCooldownSeconds()) {
          setItemCooldownSeconds(other.getItemCooldownSeconds());
        }
        if (other.hasShowBuyback()) {
          setShowBuyback(other.getShowBuyback());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_QuickBuyAlert parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_QuickBuyAlert) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int playerId_ ;
      /**
       * optional int32 player_id = 1;
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 player_id = 1;
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * optional int32 player_id = 1;
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000001;
        playerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 player_id = 1;
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        onChanged();
        return this;
      }

      private int itemAbilityId_ ;
      /**
       * optional int32 item_ability_id = 2;
       */
      public boolean hasItemAbilityId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional int32 item_ability_id = 2;
       */
      public int getItemAbilityId() {
        return itemAbilityId_;
      }
      /**
       * optional int32 item_ability_id = 2;
       */
      public Builder setItemAbilityId(int value) {
        bitField0_ |= 0x00000002;
        itemAbilityId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 item_ability_id = 2;
       */
      public Builder clearItemAbilityId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        itemAbilityId_ = 0;
        onChanged();
        return this;
      }

      private int goldCost_ ;
      /**
       * optional int32 gold_cost = 3;
       */
      public boolean hasGoldCost() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional int32 gold_cost = 3;
       */
      public int getGoldCost() {
        return goldCost_;
      }
      /**
       * optional int32 gold_cost = 3;
       */
      public Builder setGoldCost(int value) {
        bitField0_ |= 0x00000004;
        goldCost_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 gold_cost = 3;
       */
      public Builder clearGoldCost() {
        bitField0_ = (bitField0_ & ~0x00000004);
        goldCost_ = 0;
        onChanged();
        return this;
      }

      private int itemCooldownSeconds_ ;
      /**
       * optional int32 item_cooldown_seconds = 4;
       */
      public boolean hasItemCooldownSeconds() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional int32 item_cooldown_seconds = 4;
       */
      public int getItemCooldownSeconds() {
        return itemCooldownSeconds_;
      }
      /**
       * optional int32 item_cooldown_seconds = 4;
       */
      public Builder setItemCooldownSeconds(int value) {
        bitField0_ |= 0x00000008;
        itemCooldownSeconds_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 item_cooldown_seconds = 4;
       */
      public Builder clearItemCooldownSeconds() {
        bitField0_ = (bitField0_ & ~0x00000008);
        itemCooldownSeconds_ = 0;
        onChanged();
        return this;
      }

      private boolean showBuyback_ ;
      /**
       * optional bool show_buyback = 5;
       */
      public boolean hasShowBuyback() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * optional bool show_buyback = 5;
       */
      public boolean getShowBuyback() {
        return showBuyback_;
      }
      /**
       * optional bool show_buyback = 5;
       */
      public Builder setShowBuyback(boolean value) {
        bitField0_ |= 0x00000010;
        showBuyback_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool show_buyback = 5;
       */
      public Builder clearShowBuyback() {
        bitField0_ = (bitField0_ & ~0x00000010);
        showBuyback_ = false;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_QuickBuyAlert)
    }

    static {
      defaultInstance = new CDOTAUserMsg_QuickBuyAlert(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_QuickBuyAlert)
  }

  public interface CDOTAUserMsg_CourierKilledAlertOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_CourierKilledAlert)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional uint32 team = 1;
     */
    boolean hasTeam();
    /**
     * optional uint32 team = 1;
     */
    int getTeam();

    /**
     * optional uint32 gold_value = 2;
     */
    boolean hasGoldValue();
    /**
     * optional uint32 gold_value = 2;
     */
    int getGoldValue();

    /**
     * optional int32 entity_handle = 3;
     */
    boolean hasEntityHandle();
    /**
     * optional int32 entity_handle = 3;
     */
    int getEntityHandle();

    /**
     * optional int32 timestamp = 4;
     */
    boolean hasTimestamp();
    /**
     * optional int32 timestamp = 4;
     */
    int getTimestamp();

    /**
     * repeated .CDOTAUserMsg_CourierKilledAlert.LostItem lost_items = 5;
     */
    java.util.List 
        getLostItemsList();
    /**
     * repeated .CDOTAUserMsg_CourierKilledAlert.LostItem lost_items = 5;
     */
    skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItem getLostItems(int index);
    /**
     * repeated .CDOTAUserMsg_CourierKilledAlert.LostItem lost_items = 5;
     */
    int getLostItemsCount();
    /**
     * repeated .CDOTAUserMsg_CourierKilledAlert.LostItem lost_items = 5;
     */
    java.util.List 
        getLostItemsOrBuilderList();
    /**
     * repeated .CDOTAUserMsg_CourierKilledAlert.LostItem lost_items = 5;
     */
    skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItemOrBuilder getLostItemsOrBuilder(
        int index);

    /**
     * optional int32 killer_player_id = 6;
     */
    boolean hasKillerPlayerId();
    /**
     * optional int32 killer_player_id = 6;
     */
    int getKillerPlayerId();

    /**
     * optional int32 owning_player_id = 7;
     */
    boolean hasOwningPlayerId();
    /**
     * optional int32 owning_player_id = 7;
     */
    int getOwningPlayerId();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_CourierKilledAlert}
   */
  public static final class CDOTAUserMsg_CourierKilledAlert extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_CourierKilledAlert)
      CDOTAUserMsg_CourierKilledAlertOrBuilder {
    // Use CDOTAUserMsg_CourierKilledAlert.newBuilder() to construct.
    private CDOTAUserMsg_CourierKilledAlert(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_CourierKilledAlert(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_CourierKilledAlert defaultInstance;
    public static CDOTAUserMsg_CourierKilledAlert getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_CourierKilledAlert getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_CourierKilledAlert(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              team_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              goldValue_ = input.readUInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              entityHandle_ = input.readInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              timestamp_ = input.readInt32();
              break;
            }
            case 42: {
              if (!((mutable_bitField0_ & 0x00000010) == 0x00000010)) {
                lostItems_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000010;
              }
              lostItems_.add(input.readMessage(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItem.PARSER, extensionRegistry));
              break;
            }
            case 48: {
              bitField0_ |= 0x00000010;
              killerPlayerId_ = input.readInt32();
              break;
            }
            case 56: {
              bitField0_ |= 0x00000020;
              owningPlayerId_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000010) == 0x00000010)) {
          lostItems_ = java.util.Collections.unmodifiableList(lostItems_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_CourierKilledAlert_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_CourierKilledAlert_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CourierKilledAlert.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CourierKilledAlert.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_CourierKilledAlert parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_CourierKilledAlert(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    public interface LostItemOrBuilder extends
        // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_CourierKilledAlert.LostItem)
        com.google.protobuf.MessageOrBuilder {

      /**
       * optional int32 item_ability_id = 1;
       */
      boolean hasItemAbilityId();
      /**
       * optional int32 item_ability_id = 1;
       */
      int getItemAbilityId();

      /**
       * optional uint32 quantity = 2;
       */
      boolean hasQuantity();
      /**
       * optional uint32 quantity = 2;
       */
      int getQuantity();
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_CourierKilledAlert.LostItem}
     */
    public static final class LostItem extends
        com.google.protobuf.GeneratedMessage implements
        // @@protoc_insertion_point(message_implements:CDOTAUserMsg_CourierKilledAlert.LostItem)
        LostItemOrBuilder {
      // Use LostItem.newBuilder() to construct.
      private LostItem(com.google.protobuf.GeneratedMessage.Builder builder) {
        super(builder);
        this.unknownFields = builder.getUnknownFields();
      }
      private LostItem(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

      private static final LostItem defaultInstance;
      public static LostItem getDefaultInstance() {
        return defaultInstance;
      }

      public LostItem getDefaultInstanceForType() {
        return defaultInstance;
      }

      private final com.google.protobuf.UnknownFieldSet unknownFields;
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
          getUnknownFields() {
        return this.unknownFields;
      }
      private LostItem(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        initFields();
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
              case 8: {
                bitField0_ |= 0x00000001;
                itemAbilityId_ = input.readInt32();
                break;
              }
              case 16: {
                bitField0_ |= 0x00000002;
                quantity_ = input.readUInt32();
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e.getMessage()).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_CourierKilledAlert_LostItem_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_CourierKilledAlert_LostItem_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItem.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItem.Builder.class);
      }

      public static com.google.protobuf.Parser PARSER =
          new com.google.protobuf.AbstractParser() {
        public LostItem parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new LostItem(input, extensionRegistry);
        }
      };

      @java.lang.Override
      public com.google.protobuf.Parser getParserForType() {
        return PARSER;
      }

      private int bitField0_;
      public static final int ITEM_ABILITY_ID_FIELD_NUMBER = 1;
      private int itemAbilityId_;
      /**
       * optional int32 item_ability_id = 1;
       */
      public boolean hasItemAbilityId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 item_ability_id = 1;
       */
      public int getItemAbilityId() {
        return itemAbilityId_;
      }

      public static final int QUANTITY_FIELD_NUMBER = 2;
      private int quantity_;
      /**
       * optional uint32 quantity = 2;
       */
      public boolean hasQuantity() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional uint32 quantity = 2;
       */
      public int getQuantity() {
        return quantity_;
      }

      private void initFields() {
        itemAbilityId_ = 0;
        quantity_ = 0;
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeInt32(1, itemAbilityId_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeUInt32(2, quantity_);
        }
        getUnknownFields().writeTo(output);
      }

      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;

        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(1, itemAbilityId_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeUInt32Size(2, quantity_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.Object writeReplace()
          throws java.io.ObjectStreamException {
        return super.writeReplace();
      }

      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItem parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItem parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItem parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItem parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItem parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItem parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItem parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItem parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItem parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItem parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }

      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItem prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code CDOTAUserMsg_CourierKilledAlert.LostItem}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder implements
          // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_CourierKilledAlert.LostItem)
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItemOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_CourierKilledAlert_LostItem_descriptor;
        }

        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_CourierKilledAlert_LostItem_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItem.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItem.Builder.class);
        }

        // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItem.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          }
        }
        private static Builder create() {
          return new Builder();
        }

        public Builder clear() {
          super.clear();
          itemAbilityId_ = 0;
          bitField0_ = (bitField0_ & ~0x00000001);
          quantity_ = 0;
          bitField0_ = (bitField0_ & ~0x00000002);
          return this;
        }

        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }

        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_CourierKilledAlert_LostItem_descriptor;
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItem getDefaultInstanceForType() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItem.getDefaultInstance();
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItem build() {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItem result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItem buildPartial() {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItem result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItem(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.itemAbilityId_ = itemAbilityId_;
          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
            to_bitField0_ |= 0x00000002;
          }
          result.quantity_ = quantity_;
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }

        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItem) {
            return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItem)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItem other) {
          if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItem.getDefaultInstance()) return this;
          if (other.hasItemAbilityId()) {
            setItemAbilityId(other.getItemAbilityId());
          }
          if (other.hasQuantity()) {
            setQuantity(other.getQuantity());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }

        public final boolean isInitialized() {
          return true;
        }

        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItem parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItem) e.getUnfinishedMessage();
            throw e;
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        private int itemAbilityId_ ;
        /**
         * optional int32 item_ability_id = 1;
         */
        public boolean hasItemAbilityId() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * optional int32 item_ability_id = 1;
         */
        public int getItemAbilityId() {
          return itemAbilityId_;
        }
        /**
         * optional int32 item_ability_id = 1;
         */
        public Builder setItemAbilityId(int value) {
          bitField0_ |= 0x00000001;
          itemAbilityId_ = value;
          onChanged();
          return this;
        }
        /**
         * optional int32 item_ability_id = 1;
         */
        public Builder clearItemAbilityId() {
          bitField0_ = (bitField0_ & ~0x00000001);
          itemAbilityId_ = 0;
          onChanged();
          return this;
        }

        private int quantity_ ;
        /**
         * optional uint32 quantity = 2;
         */
        public boolean hasQuantity() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        /**
         * optional uint32 quantity = 2;
         */
        public int getQuantity() {
          return quantity_;
        }
        /**
         * optional uint32 quantity = 2;
         */
        public Builder setQuantity(int value) {
          bitField0_ |= 0x00000002;
          quantity_ = value;
          onChanged();
          return this;
        }
        /**
         * optional uint32 quantity = 2;
         */
        public Builder clearQuantity() {
          bitField0_ = (bitField0_ & ~0x00000002);
          quantity_ = 0;
          onChanged();
          return this;
        }

        // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_CourierKilledAlert.LostItem)
      }

      static {
        defaultInstance = new LostItem(true);
        defaultInstance.initFields();
      }

      // @@protoc_insertion_point(class_scope:CDOTAUserMsg_CourierKilledAlert.LostItem)
    }

    private int bitField0_;
    public static final int TEAM_FIELD_NUMBER = 1;
    private int team_;
    /**
     * optional uint32 team = 1;
     */
    public boolean hasTeam() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional uint32 team = 1;
     */
    public int getTeam() {
      return team_;
    }

    public static final int GOLD_VALUE_FIELD_NUMBER = 2;
    private int goldValue_;
    /**
     * optional uint32 gold_value = 2;
     */
    public boolean hasGoldValue() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional uint32 gold_value = 2;
     */
    public int getGoldValue() {
      return goldValue_;
    }

    public static final int ENTITY_HANDLE_FIELD_NUMBER = 3;
    private int entityHandle_;
    /**
     * optional int32 entity_handle = 3;
     */
    public boolean hasEntityHandle() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional int32 entity_handle = 3;
     */
    public int getEntityHandle() {
      return entityHandle_;
    }

    public static final int TIMESTAMP_FIELD_NUMBER = 4;
    private int timestamp_;
    /**
     * optional int32 timestamp = 4;
     */
    public boolean hasTimestamp() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional int32 timestamp = 4;
     */
    public int getTimestamp() {
      return timestamp_;
    }

    public static final int LOST_ITEMS_FIELD_NUMBER = 5;
    private java.util.List lostItems_;
    /**
     * repeated .CDOTAUserMsg_CourierKilledAlert.LostItem lost_items = 5;
     */
    public java.util.List getLostItemsList() {
      return lostItems_;
    }
    /**
     * repeated .CDOTAUserMsg_CourierKilledAlert.LostItem lost_items = 5;
     */
    public java.util.List 
        getLostItemsOrBuilderList() {
      return lostItems_;
    }
    /**
     * repeated .CDOTAUserMsg_CourierKilledAlert.LostItem lost_items = 5;
     */
    public int getLostItemsCount() {
      return lostItems_.size();
    }
    /**
     * repeated .CDOTAUserMsg_CourierKilledAlert.LostItem lost_items = 5;
     */
    public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItem getLostItems(int index) {
      return lostItems_.get(index);
    }
    /**
     * repeated .CDOTAUserMsg_CourierKilledAlert.LostItem lost_items = 5;
     */
    public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItemOrBuilder getLostItemsOrBuilder(
        int index) {
      return lostItems_.get(index);
    }

    public static final int KILLER_PLAYER_ID_FIELD_NUMBER = 6;
    private int killerPlayerId_;
    /**
     * optional int32 killer_player_id = 6;
     */
    public boolean hasKillerPlayerId() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * optional int32 killer_player_id = 6;
     */
    public int getKillerPlayerId() {
      return killerPlayerId_;
    }

    public static final int OWNING_PLAYER_ID_FIELD_NUMBER = 7;
    private int owningPlayerId_;
    /**
     * optional int32 owning_player_id = 7;
     */
    public boolean hasOwningPlayerId() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     * optional int32 owning_player_id = 7;
     */
    public int getOwningPlayerId() {
      return owningPlayerId_;
    }

    private void initFields() {
      team_ = 0;
      goldValue_ = 0;
      entityHandle_ = 0;
      timestamp_ = 0;
      lostItems_ = java.util.Collections.emptyList();
      killerPlayerId_ = 0;
      owningPlayerId_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, team_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, goldValue_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeInt32(3, entityHandle_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeInt32(4, timestamp_);
      }
      for (int i = 0; i < lostItems_.size(); i++) {
        output.writeMessage(5, lostItems_.get(i));
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeInt32(6, killerPlayerId_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeInt32(7, owningPlayerId_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, team_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, goldValue_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, entityHandle_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, timestamp_);
      }
      for (int i = 0; i < lostItems_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(5, lostItems_.get(i));
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(6, killerPlayerId_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(7, owningPlayerId_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CourierKilledAlert parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CourierKilledAlert parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CourierKilledAlert parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CourierKilledAlert parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CourierKilledAlert parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CourierKilledAlert parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CourierKilledAlert parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CourierKilledAlert parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CourierKilledAlert parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CourierKilledAlert parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CourierKilledAlert prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_CourierKilledAlert}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_CourierKilledAlert)
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CourierKilledAlertOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_CourierKilledAlert_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_CourierKilledAlert_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CourierKilledAlert.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CourierKilledAlert.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CourierKilledAlert.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getLostItemsFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        team_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        goldValue_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        entityHandle_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        timestamp_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        if (lostItemsBuilder_ == null) {
          lostItems_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000010);
        } else {
          lostItemsBuilder_.clear();
        }
        killerPlayerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000020);
        owningPlayerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000040);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_CourierKilledAlert_descriptor;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CourierKilledAlert getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CourierKilledAlert.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CourierKilledAlert build() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CourierKilledAlert result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CourierKilledAlert buildPartial() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CourierKilledAlert result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CourierKilledAlert(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.team_ = team_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.goldValue_ = goldValue_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.entityHandle_ = entityHandle_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.timestamp_ = timestamp_;
        if (lostItemsBuilder_ == null) {
          if (((bitField0_ & 0x00000010) == 0x00000010)) {
            lostItems_ = java.util.Collections.unmodifiableList(lostItems_);
            bitField0_ = (bitField0_ & ~0x00000010);
          }
          result.lostItems_ = lostItems_;
        } else {
          result.lostItems_ = lostItemsBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000010;
        }
        result.killerPlayerId_ = killerPlayerId_;
        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
          to_bitField0_ |= 0x00000020;
        }
        result.owningPlayerId_ = owningPlayerId_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CourierKilledAlert) {
          return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CourierKilledAlert)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CourierKilledAlert other) {
        if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CourierKilledAlert.getDefaultInstance()) return this;
        if (other.hasTeam()) {
          setTeam(other.getTeam());
        }
        if (other.hasGoldValue()) {
          setGoldValue(other.getGoldValue());
        }
        if (other.hasEntityHandle()) {
          setEntityHandle(other.getEntityHandle());
        }
        if (other.hasTimestamp()) {
          setTimestamp(other.getTimestamp());
        }
        if (lostItemsBuilder_ == null) {
          if (!other.lostItems_.isEmpty()) {
            if (lostItems_.isEmpty()) {
              lostItems_ = other.lostItems_;
              bitField0_ = (bitField0_ & ~0x00000010);
            } else {
              ensureLostItemsIsMutable();
              lostItems_.addAll(other.lostItems_);
            }
            onChanged();
          }
        } else {
          if (!other.lostItems_.isEmpty()) {
            if (lostItemsBuilder_.isEmpty()) {
              lostItemsBuilder_.dispose();
              lostItemsBuilder_ = null;
              lostItems_ = other.lostItems_;
              bitField0_ = (bitField0_ & ~0x00000010);
              lostItemsBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getLostItemsFieldBuilder() : null;
            } else {
              lostItemsBuilder_.addAllMessages(other.lostItems_);
            }
          }
        }
        if (other.hasKillerPlayerId()) {
          setKillerPlayerId(other.getKillerPlayerId());
        }
        if (other.hasOwningPlayerId()) {
          setOwningPlayerId(other.getOwningPlayerId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CourierKilledAlert parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CourierKilledAlert) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int team_ ;
      /**
       * optional uint32 team = 1;
       */
      public boolean hasTeam() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional uint32 team = 1;
       */
      public int getTeam() {
        return team_;
      }
      /**
       * optional uint32 team = 1;
       */
      public Builder setTeam(int value) {
        bitField0_ |= 0x00000001;
        team_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 team = 1;
       */
      public Builder clearTeam() {
        bitField0_ = (bitField0_ & ~0x00000001);
        team_ = 0;
        onChanged();
        return this;
      }

      private int goldValue_ ;
      /**
       * optional uint32 gold_value = 2;
       */
      public boolean hasGoldValue() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional uint32 gold_value = 2;
       */
      public int getGoldValue() {
        return goldValue_;
      }
      /**
       * optional uint32 gold_value = 2;
       */
      public Builder setGoldValue(int value) {
        bitField0_ |= 0x00000002;
        goldValue_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 gold_value = 2;
       */
      public Builder clearGoldValue() {
        bitField0_ = (bitField0_ & ~0x00000002);
        goldValue_ = 0;
        onChanged();
        return this;
      }

      private int entityHandle_ ;
      /**
       * optional int32 entity_handle = 3;
       */
      public boolean hasEntityHandle() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional int32 entity_handle = 3;
       */
      public int getEntityHandle() {
        return entityHandle_;
      }
      /**
       * optional int32 entity_handle = 3;
       */
      public Builder setEntityHandle(int value) {
        bitField0_ |= 0x00000004;
        entityHandle_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 entity_handle = 3;
       */
      public Builder clearEntityHandle() {
        bitField0_ = (bitField0_ & ~0x00000004);
        entityHandle_ = 0;
        onChanged();
        return this;
      }

      private int timestamp_ ;
      /**
       * optional int32 timestamp = 4;
       */
      public boolean hasTimestamp() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional int32 timestamp = 4;
       */
      public int getTimestamp() {
        return timestamp_;
      }
      /**
       * optional int32 timestamp = 4;
       */
      public Builder setTimestamp(int value) {
        bitField0_ |= 0x00000008;
        timestamp_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 timestamp = 4;
       */
      public Builder clearTimestamp() {
        bitField0_ = (bitField0_ & ~0x00000008);
        timestamp_ = 0;
        onChanged();
        return this;
      }

      private java.util.List lostItems_ =
        java.util.Collections.emptyList();
      private void ensureLostItemsIsMutable() {
        if (!((bitField0_ & 0x00000010) == 0x00000010)) {
          lostItems_ = new java.util.ArrayList(lostItems_);
          bitField0_ |= 0x00000010;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItem, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItem.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItemOrBuilder> lostItemsBuilder_;

      /**
       * repeated .CDOTAUserMsg_CourierKilledAlert.LostItem lost_items = 5;
       */
      public java.util.List getLostItemsList() {
        if (lostItemsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(lostItems_);
        } else {
          return lostItemsBuilder_.getMessageList();
        }
      }
      /**
       * repeated .CDOTAUserMsg_CourierKilledAlert.LostItem lost_items = 5;
       */
      public int getLostItemsCount() {
        if (lostItemsBuilder_ == null) {
          return lostItems_.size();
        } else {
          return lostItemsBuilder_.getCount();
        }
      }
      /**
       * repeated .CDOTAUserMsg_CourierKilledAlert.LostItem lost_items = 5;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItem getLostItems(int index) {
        if (lostItemsBuilder_ == null) {
          return lostItems_.get(index);
        } else {
          return lostItemsBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .CDOTAUserMsg_CourierKilledAlert.LostItem lost_items = 5;
       */
      public Builder setLostItems(
          int index, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItem value) {
        if (lostItemsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureLostItemsIsMutable();
          lostItems_.set(index, value);
          onChanged();
        } else {
          lostItemsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_CourierKilledAlert.LostItem lost_items = 5;
       */
      public Builder setLostItems(
          int index, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItem.Builder builderForValue) {
        if (lostItemsBuilder_ == null) {
          ensureLostItemsIsMutable();
          lostItems_.set(index, builderForValue.build());
          onChanged();
        } else {
          lostItemsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_CourierKilledAlert.LostItem lost_items = 5;
       */
      public Builder addLostItems(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItem value) {
        if (lostItemsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureLostItemsIsMutable();
          lostItems_.add(value);
          onChanged();
        } else {
          lostItemsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_CourierKilledAlert.LostItem lost_items = 5;
       */
      public Builder addLostItems(
          int index, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItem value) {
        if (lostItemsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureLostItemsIsMutable();
          lostItems_.add(index, value);
          onChanged();
        } else {
          lostItemsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_CourierKilledAlert.LostItem lost_items = 5;
       */
      public Builder addLostItems(
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItem.Builder builderForValue) {
        if (lostItemsBuilder_ == null) {
          ensureLostItemsIsMutable();
          lostItems_.add(builderForValue.build());
          onChanged();
        } else {
          lostItemsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_CourierKilledAlert.LostItem lost_items = 5;
       */
      public Builder addLostItems(
          int index, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItem.Builder builderForValue) {
        if (lostItemsBuilder_ == null) {
          ensureLostItemsIsMutable();
          lostItems_.add(index, builderForValue.build());
          onChanged();
        } else {
          lostItemsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_CourierKilledAlert.LostItem lost_items = 5;
       */
      public Builder addAllLostItems(
          java.lang.Iterable values) {
        if (lostItemsBuilder_ == null) {
          ensureLostItemsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, lostItems_);
          onChanged();
        } else {
          lostItemsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_CourierKilledAlert.LostItem lost_items = 5;
       */
      public Builder clearLostItems() {
        if (lostItemsBuilder_ == null) {
          lostItems_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000010);
          onChanged();
        } else {
          lostItemsBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_CourierKilledAlert.LostItem lost_items = 5;
       */
      public Builder removeLostItems(int index) {
        if (lostItemsBuilder_ == null) {
          ensureLostItemsIsMutable();
          lostItems_.remove(index);
          onChanged();
        } else {
          lostItemsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_CourierKilledAlert.LostItem lost_items = 5;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItem.Builder getLostItemsBuilder(
          int index) {
        return getLostItemsFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .CDOTAUserMsg_CourierKilledAlert.LostItem lost_items = 5;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItemOrBuilder getLostItemsOrBuilder(
          int index) {
        if (lostItemsBuilder_ == null) {
          return lostItems_.get(index);  } else {
          return lostItemsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .CDOTAUserMsg_CourierKilledAlert.LostItem lost_items = 5;
       */
      public java.util.List 
           getLostItemsOrBuilderList() {
        if (lostItemsBuilder_ != null) {
          return lostItemsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(lostItems_);
        }
      }
      /**
       * repeated .CDOTAUserMsg_CourierKilledAlert.LostItem lost_items = 5;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItem.Builder addLostItemsBuilder() {
        return getLostItemsFieldBuilder().addBuilder(
            skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItem.getDefaultInstance());
      }
      /**
       * repeated .CDOTAUserMsg_CourierKilledAlert.LostItem lost_items = 5;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItem.Builder addLostItemsBuilder(
          int index) {
        return getLostItemsFieldBuilder().addBuilder(
            index, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItem.getDefaultInstance());
      }
      /**
       * repeated .CDOTAUserMsg_CourierKilledAlert.LostItem lost_items = 5;
       */
      public java.util.List 
           getLostItemsBuilderList() {
        return getLostItemsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItem, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItem.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItemOrBuilder> 
          getLostItemsFieldBuilder() {
        if (lostItemsBuilder_ == null) {
          lostItemsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItem, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItem.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItemOrBuilder>(
                  lostItems_,
                  ((bitField0_ & 0x00000010) == 0x00000010),
                  getParentForChildren(),
                  isClean());
          lostItems_ = null;
        }
        return lostItemsBuilder_;
      }

      private int killerPlayerId_ ;
      /**
       * optional int32 killer_player_id = 6;
       */
      public boolean hasKillerPlayerId() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * optional int32 killer_player_id = 6;
       */
      public int getKillerPlayerId() {
        return killerPlayerId_;
      }
      /**
       * optional int32 killer_player_id = 6;
       */
      public Builder setKillerPlayerId(int value) {
        bitField0_ |= 0x00000020;
        killerPlayerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 killer_player_id = 6;
       */
      public Builder clearKillerPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000020);
        killerPlayerId_ = 0;
        onChanged();
        return this;
      }

      private int owningPlayerId_ ;
      /**
       * optional int32 owning_player_id = 7;
       */
      public boolean hasOwningPlayerId() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      /**
       * optional int32 owning_player_id = 7;
       */
      public int getOwningPlayerId() {
        return owningPlayerId_;
      }
      /**
       * optional int32 owning_player_id = 7;
       */
      public Builder setOwningPlayerId(int value) {
        bitField0_ |= 0x00000040;
        owningPlayerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 owning_player_id = 7;
       */
      public Builder clearOwningPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000040);
        owningPlayerId_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_CourierKilledAlert)
    }

    static {
      defaultInstance = new CDOTAUserMsg_CourierKilledAlert(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_CourierKilledAlert)
  }

  public interface CDOTAUserMsg_MinimapEventOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_MinimapEvent)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional int32 event_type = 1;
     */
    boolean hasEventType();
    /**
     * optional int32 event_type = 1;
     */
    int getEventType();

    /**
     * optional int32 entity_handle = 2;
     */
    boolean hasEntityHandle();
    /**
     * optional int32 entity_handle = 2;
     */
    int getEntityHandle();

    /**
     * optional int32 x = 3;
     */
    boolean hasX();
    /**
     * optional int32 x = 3;
     */
    int getX();

    /**
     * optional int32 y = 4;
     */
    boolean hasY();
    /**
     * optional int32 y = 4;
     */
    int getY();

    /**
     * optional int32 duration = 5;
     */
    boolean hasDuration();
    /**
     * optional int32 duration = 5;
     */
    int getDuration();

    /**
     * optional int32 target_entity_handle = 6;
     */
    boolean hasTargetEntityHandle();
    /**
     * optional int32 target_entity_handle = 6;
     */
    int getTargetEntityHandle();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_MinimapEvent}
   */
  public static final class CDOTAUserMsg_MinimapEvent extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_MinimapEvent)
      CDOTAUserMsg_MinimapEventOrBuilder {
    // Use CDOTAUserMsg_MinimapEvent.newBuilder() to construct.
    private CDOTAUserMsg_MinimapEvent(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_MinimapEvent(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_MinimapEvent defaultInstance;
    public static CDOTAUserMsg_MinimapEvent getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_MinimapEvent getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_MinimapEvent(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              eventType_ = input.readInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              entityHandle_ = input.readInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              x_ = input.readInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              y_ = input.readInt32();
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              duration_ = input.readInt32();
              break;
            }
            case 48: {
              bitField0_ |= 0x00000020;
              targetEntityHandle_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_MinimapEvent_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_MinimapEvent_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MinimapEvent.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MinimapEvent.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_MinimapEvent parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_MinimapEvent(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int EVENT_TYPE_FIELD_NUMBER = 1;
    private int eventType_;
    /**
     * optional int32 event_type = 1;
     */
    public boolean hasEventType() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 event_type = 1;
     */
    public int getEventType() {
      return eventType_;
    }

    public static final int ENTITY_HANDLE_FIELD_NUMBER = 2;
    private int entityHandle_;
    /**
     * optional int32 entity_handle = 2;
     */
    public boolean hasEntityHandle() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional int32 entity_handle = 2;
     */
    public int getEntityHandle() {
      return entityHandle_;
    }

    public static final int X_FIELD_NUMBER = 3;
    private int x_;
    /**
     * optional int32 x = 3;
     */
    public boolean hasX() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional int32 x = 3;
     */
    public int getX() {
      return x_;
    }

    public static final int Y_FIELD_NUMBER = 4;
    private int y_;
    /**
     * optional int32 y = 4;
     */
    public boolean hasY() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional int32 y = 4;
     */
    public int getY() {
      return y_;
    }

    public static final int DURATION_FIELD_NUMBER = 5;
    private int duration_;
    /**
     * optional int32 duration = 5;
     */
    public boolean hasDuration() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * optional int32 duration = 5;
     */
    public int getDuration() {
      return duration_;
    }

    public static final int TARGET_ENTITY_HANDLE_FIELD_NUMBER = 6;
    private int targetEntityHandle_;
    /**
     * optional int32 target_entity_handle = 6;
     */
    public boolean hasTargetEntityHandle() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     * optional int32 target_entity_handle = 6;
     */
    public int getTargetEntityHandle() {
      return targetEntityHandle_;
    }

    private void initFields() {
      eventType_ = 0;
      entityHandle_ = 0;
      x_ = 0;
      y_ = 0;
      duration_ = 0;
      targetEntityHandle_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, eventType_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, entityHandle_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeInt32(3, x_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeInt32(4, y_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeInt32(5, duration_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeInt32(6, targetEntityHandle_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, eventType_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, entityHandle_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, x_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, y_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(5, duration_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(6, targetEntityHandle_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MinimapEvent parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MinimapEvent parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MinimapEvent parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MinimapEvent parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MinimapEvent parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MinimapEvent parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MinimapEvent parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MinimapEvent parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MinimapEvent parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MinimapEvent parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MinimapEvent prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_MinimapEvent}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_MinimapEvent)
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MinimapEventOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_MinimapEvent_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_MinimapEvent_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MinimapEvent.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MinimapEvent.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MinimapEvent.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        eventType_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        entityHandle_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        x_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        y_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        duration_ = 0;
        bitField0_ = (bitField0_ & ~0x00000010);
        targetEntityHandle_ = 0;
        bitField0_ = (bitField0_ & ~0x00000020);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_MinimapEvent_descriptor;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MinimapEvent getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MinimapEvent.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MinimapEvent build() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MinimapEvent result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MinimapEvent buildPartial() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MinimapEvent result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MinimapEvent(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.eventType_ = eventType_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.entityHandle_ = entityHandle_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.x_ = x_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.y_ = y_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.duration_ = duration_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        result.targetEntityHandle_ = targetEntityHandle_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MinimapEvent) {
          return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MinimapEvent)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MinimapEvent other) {
        if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MinimapEvent.getDefaultInstance()) return this;
        if (other.hasEventType()) {
          setEventType(other.getEventType());
        }
        if (other.hasEntityHandle()) {
          setEntityHandle(other.getEntityHandle());
        }
        if (other.hasX()) {
          setX(other.getX());
        }
        if (other.hasY()) {
          setY(other.getY());
        }
        if (other.hasDuration()) {
          setDuration(other.getDuration());
        }
        if (other.hasTargetEntityHandle()) {
          setTargetEntityHandle(other.getTargetEntityHandle());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MinimapEvent parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MinimapEvent) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int eventType_ ;
      /**
       * optional int32 event_type = 1;
       */
      public boolean hasEventType() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 event_type = 1;
       */
      public int getEventType() {
        return eventType_;
      }
      /**
       * optional int32 event_type = 1;
       */
      public Builder setEventType(int value) {
        bitField0_ |= 0x00000001;
        eventType_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 event_type = 1;
       */
      public Builder clearEventType() {
        bitField0_ = (bitField0_ & ~0x00000001);
        eventType_ = 0;
        onChanged();
        return this;
      }

      private int entityHandle_ ;
      /**
       * optional int32 entity_handle = 2;
       */
      public boolean hasEntityHandle() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional int32 entity_handle = 2;
       */
      public int getEntityHandle() {
        return entityHandle_;
      }
      /**
       * optional int32 entity_handle = 2;
       */
      public Builder setEntityHandle(int value) {
        bitField0_ |= 0x00000002;
        entityHandle_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 entity_handle = 2;
       */
      public Builder clearEntityHandle() {
        bitField0_ = (bitField0_ & ~0x00000002);
        entityHandle_ = 0;
        onChanged();
        return this;
      }

      private int x_ ;
      /**
       * optional int32 x = 3;
       */
      public boolean hasX() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional int32 x = 3;
       */
      public int getX() {
        return x_;
      }
      /**
       * optional int32 x = 3;
       */
      public Builder setX(int value) {
        bitField0_ |= 0x00000004;
        x_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 x = 3;
       */
      public Builder clearX() {
        bitField0_ = (bitField0_ & ~0x00000004);
        x_ = 0;
        onChanged();
        return this;
      }

      private int y_ ;
      /**
       * optional int32 y = 4;
       */
      public boolean hasY() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional int32 y = 4;
       */
      public int getY() {
        return y_;
      }
      /**
       * optional int32 y = 4;
       */
      public Builder setY(int value) {
        bitField0_ |= 0x00000008;
        y_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 y = 4;
       */
      public Builder clearY() {
        bitField0_ = (bitField0_ & ~0x00000008);
        y_ = 0;
        onChanged();
        return this;
      }

      private int duration_ ;
      /**
       * optional int32 duration = 5;
       */
      public boolean hasDuration() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * optional int32 duration = 5;
       */
      public int getDuration() {
        return duration_;
      }
      /**
       * optional int32 duration = 5;
       */
      public Builder setDuration(int value) {
        bitField0_ |= 0x00000010;
        duration_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 duration = 5;
       */
      public Builder clearDuration() {
        bitField0_ = (bitField0_ & ~0x00000010);
        duration_ = 0;
        onChanged();
        return this;
      }

      private int targetEntityHandle_ ;
      /**
       * optional int32 target_entity_handle = 6;
       */
      public boolean hasTargetEntityHandle() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * optional int32 target_entity_handle = 6;
       */
      public int getTargetEntityHandle() {
        return targetEntityHandle_;
      }
      /**
       * optional int32 target_entity_handle = 6;
       */
      public Builder setTargetEntityHandle(int value) {
        bitField0_ |= 0x00000020;
        targetEntityHandle_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 target_entity_handle = 6;
       */
      public Builder clearTargetEntityHandle() {
        bitField0_ = (bitField0_ & ~0x00000020);
        targetEntityHandle_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_MinimapEvent)
    }

    static {
      defaultInstance = new CDOTAUserMsg_MinimapEvent(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_MinimapEvent)
  }

  public interface CDOTAUserMsg_MapLineOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_MapLine)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional int32 player_id = 1;
     */
    boolean hasPlayerId();
    /**
     * optional int32 player_id = 1;
     */
    int getPlayerId();

    /**
     * optional .CDOTAMsg_MapLine mapline = 2;
     */
    boolean hasMapline();
    /**
     * optional .CDOTAMsg_MapLine mapline = 2;
     */
    skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_MapLine getMapline();
    /**
     * optional .CDOTAMsg_MapLine mapline = 2;
     */
    skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_MapLineOrBuilder getMaplineOrBuilder();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_MapLine}
   */
  public static final class CDOTAUserMsg_MapLine extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_MapLine)
      CDOTAUserMsg_MapLineOrBuilder {
    // Use CDOTAUserMsg_MapLine.newBuilder() to construct.
    private CDOTAUserMsg_MapLine(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_MapLine(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_MapLine defaultInstance;
    public static CDOTAUserMsg_MapLine getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_MapLine getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_MapLine(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              playerId_ = input.readInt32();
              break;
            }
            case 18: {
              skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_MapLine.Builder subBuilder = null;
              if (((bitField0_ & 0x00000002) == 0x00000002)) {
                subBuilder = mapline_.toBuilder();
              }
              mapline_ = input.readMessage(skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_MapLine.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(mapline_);
                mapline_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000002;
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_MapLine_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_MapLine_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MapLine.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MapLine.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_MapLine parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_MapLine(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int PLAYER_ID_FIELD_NUMBER = 1;
    private int playerId_;
    /**
     * optional int32 player_id = 1;
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 player_id = 1;
     */
    public int getPlayerId() {
      return playerId_;
    }

    public static final int MAPLINE_FIELD_NUMBER = 2;
    private skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_MapLine mapline_;
    /**
     * optional .CDOTAMsg_MapLine mapline = 2;
     */
    public boolean hasMapline() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional .CDOTAMsg_MapLine mapline = 2;
     */
    public skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_MapLine getMapline() {
      return mapline_;
    }
    /**
     * optional .CDOTAMsg_MapLine mapline = 2;
     */
    public skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_MapLineOrBuilder getMaplineOrBuilder() {
      return mapline_;
    }

    private void initFields() {
      playerId_ = 0;
      mapline_ = skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_MapLine.getDefaultInstance();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(2, mapline_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, mapline_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MapLine parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MapLine parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MapLine parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MapLine parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MapLine parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MapLine parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MapLine parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MapLine parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MapLine parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MapLine parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MapLine prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_MapLine}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_MapLine)
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MapLineOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_MapLine_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_MapLine_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MapLine.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MapLine.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MapLine.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getMaplineFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        if (maplineBuilder_ == null) {
          mapline_ = skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_MapLine.getDefaultInstance();
        } else {
          maplineBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_MapLine_descriptor;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MapLine getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MapLine.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MapLine build() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MapLine result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MapLine buildPartial() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MapLine result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MapLine(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.playerId_ = playerId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        if (maplineBuilder_ == null) {
          result.mapline_ = mapline_;
        } else {
          result.mapline_ = maplineBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MapLine) {
          return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MapLine)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MapLine other) {
        if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MapLine.getDefaultInstance()) return this;
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        if (other.hasMapline()) {
          mergeMapline(other.getMapline());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MapLine parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MapLine) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int playerId_ ;
      /**
       * optional int32 player_id = 1;
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 player_id = 1;
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * optional int32 player_id = 1;
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000001;
        playerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 player_id = 1;
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        onChanged();
        return this;
      }

      private skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_MapLine mapline_ = skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_MapLine.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_MapLine, skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_MapLine.Builder, skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_MapLineOrBuilder> maplineBuilder_;
      /**
       * optional .CDOTAMsg_MapLine mapline = 2;
       */
      public boolean hasMapline() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional .CDOTAMsg_MapLine mapline = 2;
       */
      public skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_MapLine getMapline() {
        if (maplineBuilder_ == null) {
          return mapline_;
        } else {
          return maplineBuilder_.getMessage();
        }
      }
      /**
       * optional .CDOTAMsg_MapLine mapline = 2;
       */
      public Builder setMapline(skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_MapLine value) {
        if (maplineBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          mapline_ = value;
          onChanged();
        } else {
          maplineBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * optional .CDOTAMsg_MapLine mapline = 2;
       */
      public Builder setMapline(
          skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_MapLine.Builder builderForValue) {
        if (maplineBuilder_ == null) {
          mapline_ = builderForValue.build();
          onChanged();
        } else {
          maplineBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * optional .CDOTAMsg_MapLine mapline = 2;
       */
      public Builder mergeMapline(skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_MapLine value) {
        if (maplineBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002) &&
              mapline_ != skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_MapLine.getDefaultInstance()) {
            mapline_ =
              skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_MapLine.newBuilder(mapline_).mergeFrom(value).buildPartial();
          } else {
            mapline_ = value;
          }
          onChanged();
        } else {
          maplineBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * optional .CDOTAMsg_MapLine mapline = 2;
       */
      public Builder clearMapline() {
        if (maplineBuilder_ == null) {
          mapline_ = skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_MapLine.getDefaultInstance();
          onChanged();
        } else {
          maplineBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      /**
       * optional .CDOTAMsg_MapLine mapline = 2;
       */
      public skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_MapLine.Builder getMaplineBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getMaplineFieldBuilder().getBuilder();
      }
      /**
       * optional .CDOTAMsg_MapLine mapline = 2;
       */
      public skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_MapLineOrBuilder getMaplineOrBuilder() {
        if (maplineBuilder_ != null) {
          return maplineBuilder_.getMessageOrBuilder();
        } else {
          return mapline_;
        }
      }
      /**
       * optional .CDOTAMsg_MapLine mapline = 2;
       */
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_MapLine, skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_MapLine.Builder, skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_MapLineOrBuilder> 
          getMaplineFieldBuilder() {
        if (maplineBuilder_ == null) {
          maplineBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_MapLine, skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_MapLine.Builder, skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_MapLineOrBuilder>(
                  getMapline(),
                  getParentForChildren(),
                  isClean());
          mapline_ = null;
        }
        return maplineBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_MapLine)
    }

    static {
      defaultInstance = new CDOTAUserMsg_MapLine(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_MapLine)
  }

  public interface CDOTAUserMsg_CreateLinearProjectileOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_CreateLinearProjectile)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional .CMsgVector origin = 1;
     */
    boolean hasOrigin();
    /**
     * optional .CMsgVector origin = 1;
     */
    skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector getOrigin();
    /**
     * optional .CMsgVector origin = 1;
     */
    skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder getOriginOrBuilder();

    /**
     * optional .CMsgVector2D velocity = 2;
     */
    boolean hasVelocity();
    /**
     * optional .CMsgVector2D velocity = 2;
     */
    skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector2D getVelocity();
    /**
     * optional .CMsgVector2D velocity = 2;
     */
    skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector2DOrBuilder getVelocityOrBuilder();

    /**
     * optional int32 latency = 3;
     */
    boolean hasLatency();
    /**
     * optional int32 latency = 3;
     */
    int getLatency();

    /**
     * optional int32 entindex = 4;
     */
    boolean hasEntindex();
    /**
     * optional int32 entindex = 4;
     */
    int getEntindex();

    /**
     * optional uint64 particle_index = 5;
     */
    boolean hasParticleIndex();
    /**
     * optional uint64 particle_index = 5;
     */
    long getParticleIndex();

    /**
     * optional int32 handle = 6;
     */
    boolean hasHandle();
    /**
     * optional int32 handle = 6;
     */
    int getHandle();

    /**
     * optional .CMsgVector2D acceleration = 7;
     */
    boolean hasAcceleration();
    /**
     * optional .CMsgVector2D acceleration = 7;
     */
    skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector2D getAcceleration();
    /**
     * optional .CMsgVector2D acceleration = 7;
     */
    skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector2DOrBuilder getAccelerationOrBuilder();

    /**
     * optional float max_speed = 8;
     */
    boolean hasMaxSpeed();
    /**
     * optional float max_speed = 8;
     */
    float getMaxSpeed();

    /**
     * optional float fow_radius = 9;
     */
    boolean hasFowRadius();
    /**
     * optional float fow_radius = 9;
     */
    float getFowRadius();

    /**
     * optional bool sticky_fow_reveal = 10;
     */
    boolean hasStickyFowReveal();
    /**
     * optional bool sticky_fow_reveal = 10;
     */
    boolean getStickyFowReveal();

    /**
     * optional float distance = 11;
     */
    boolean hasDistance();
    /**
     * optional float distance = 11;
     */
    float getDistance();

    /**
     * optional fixed32 colorgemcolor = 12;
     */
    boolean hasColorgemcolor();
    /**
     * optional fixed32 colorgemcolor = 12;
     */
    int getColorgemcolor();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_CreateLinearProjectile}
   */
  public static final class CDOTAUserMsg_CreateLinearProjectile extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_CreateLinearProjectile)
      CDOTAUserMsg_CreateLinearProjectileOrBuilder {
    // Use CDOTAUserMsg_CreateLinearProjectile.newBuilder() to construct.
    private CDOTAUserMsg_CreateLinearProjectile(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_CreateLinearProjectile(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_CreateLinearProjectile defaultInstance;
    public static CDOTAUserMsg_CreateLinearProjectile getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_CreateLinearProjectile getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_CreateLinearProjectile(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) == 0x00000001)) {
                subBuilder = origin_.toBuilder();
              }
              origin_ = input.readMessage(skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(origin_);
                origin_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 18: {
              skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector2D.Builder subBuilder = null;
              if (((bitField0_ & 0x00000002) == 0x00000002)) {
                subBuilder = velocity_.toBuilder();
              }
              velocity_ = input.readMessage(skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector2D.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(velocity_);
                velocity_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000002;
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              latency_ = input.readInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              entindex_ = input.readInt32();
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              particleIndex_ = input.readUInt64();
              break;
            }
            case 48: {
              bitField0_ |= 0x00000020;
              handle_ = input.readInt32();
              break;
            }
            case 58: {
              skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector2D.Builder subBuilder = null;
              if (((bitField0_ & 0x00000040) == 0x00000040)) {
                subBuilder = acceleration_.toBuilder();
              }
              acceleration_ = input.readMessage(skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector2D.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(acceleration_);
                acceleration_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000040;
              break;
            }
            case 69: {
              bitField0_ |= 0x00000080;
              maxSpeed_ = input.readFloat();
              break;
            }
            case 77: {
              bitField0_ |= 0x00000100;
              fowRadius_ = input.readFloat();
              break;
            }
            case 80: {
              bitField0_ |= 0x00000200;
              stickyFowReveal_ = input.readBool();
              break;
            }
            case 93: {
              bitField0_ |= 0x00000400;
              distance_ = input.readFloat();
              break;
            }
            case 101: {
              bitField0_ |= 0x00000800;
              colorgemcolor_ = input.readFixed32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_CreateLinearProjectile_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_CreateLinearProjectile_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CreateLinearProjectile.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CreateLinearProjectile.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_CreateLinearProjectile parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_CreateLinearProjectile(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int ORIGIN_FIELD_NUMBER = 1;
    private skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector origin_;
    /**
     * optional .CMsgVector origin = 1;
     */
    public boolean hasOrigin() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional .CMsgVector origin = 1;
     */
    public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector getOrigin() {
      return origin_;
    }
    /**
     * optional .CMsgVector origin = 1;
     */
    public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder getOriginOrBuilder() {
      return origin_;
    }

    public static final int VELOCITY_FIELD_NUMBER = 2;
    private skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector2D velocity_;
    /**
     * optional .CMsgVector2D velocity = 2;
     */
    public boolean hasVelocity() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional .CMsgVector2D velocity = 2;
     */
    public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector2D getVelocity() {
      return velocity_;
    }
    /**
     * optional .CMsgVector2D velocity = 2;
     */
    public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector2DOrBuilder getVelocityOrBuilder() {
      return velocity_;
    }

    public static final int LATENCY_FIELD_NUMBER = 3;
    private int latency_;
    /**
     * optional int32 latency = 3;
     */
    public boolean hasLatency() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional int32 latency = 3;
     */
    public int getLatency() {
      return latency_;
    }

    public static final int ENTINDEX_FIELD_NUMBER = 4;
    private int entindex_;
    /**
     * optional int32 entindex = 4;
     */
    public boolean hasEntindex() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional int32 entindex = 4;
     */
    public int getEntindex() {
      return entindex_;
    }

    public static final int PARTICLE_INDEX_FIELD_NUMBER = 5;
    private long particleIndex_;
    /**
     * optional uint64 particle_index = 5;
     */
    public boolean hasParticleIndex() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * optional uint64 particle_index = 5;
     */
    public long getParticleIndex() {
      return particleIndex_;
    }

    public static final int HANDLE_FIELD_NUMBER = 6;
    private int handle_;
    /**
     * optional int32 handle = 6;
     */
    public boolean hasHandle() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     * optional int32 handle = 6;
     */
    public int getHandle() {
      return handle_;
    }

    public static final int ACCELERATION_FIELD_NUMBER = 7;
    private skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector2D acceleration_;
    /**
     * optional .CMsgVector2D acceleration = 7;
     */
    public boolean hasAcceleration() {
      return ((bitField0_ & 0x00000040) == 0x00000040);
    }
    /**
     * optional .CMsgVector2D acceleration = 7;
     */
    public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector2D getAcceleration() {
      return acceleration_;
    }
    /**
     * optional .CMsgVector2D acceleration = 7;
     */
    public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector2DOrBuilder getAccelerationOrBuilder() {
      return acceleration_;
    }

    public static final int MAX_SPEED_FIELD_NUMBER = 8;
    private float maxSpeed_;
    /**
     * optional float max_speed = 8;
     */
    public boolean hasMaxSpeed() {
      return ((bitField0_ & 0x00000080) == 0x00000080);
    }
    /**
     * optional float max_speed = 8;
     */
    public float getMaxSpeed() {
      return maxSpeed_;
    }

    public static final int FOW_RADIUS_FIELD_NUMBER = 9;
    private float fowRadius_;
    /**
     * optional float fow_radius = 9;
     */
    public boolean hasFowRadius() {
      return ((bitField0_ & 0x00000100) == 0x00000100);
    }
    /**
     * optional float fow_radius = 9;
     */
    public float getFowRadius() {
      return fowRadius_;
    }

    public static final int STICKY_FOW_REVEAL_FIELD_NUMBER = 10;
    private boolean stickyFowReveal_;
    /**
     * optional bool sticky_fow_reveal = 10;
     */
    public boolean hasStickyFowReveal() {
      return ((bitField0_ & 0x00000200) == 0x00000200);
    }
    /**
     * optional bool sticky_fow_reveal = 10;
     */
    public boolean getStickyFowReveal() {
      return stickyFowReveal_;
    }

    public static final int DISTANCE_FIELD_NUMBER = 11;
    private float distance_;
    /**
     * optional float distance = 11;
     */
    public boolean hasDistance() {
      return ((bitField0_ & 0x00000400) == 0x00000400);
    }
    /**
     * optional float distance = 11;
     */
    public float getDistance() {
      return distance_;
    }

    public static final int COLORGEMCOLOR_FIELD_NUMBER = 12;
    private int colorgemcolor_;
    /**
     * optional fixed32 colorgemcolor = 12;
     */
    public boolean hasColorgemcolor() {
      return ((bitField0_ & 0x00000800) == 0x00000800);
    }
    /**
     * optional fixed32 colorgemcolor = 12;
     */
    public int getColorgemcolor() {
      return colorgemcolor_;
    }

    private void initFields() {
      origin_ = skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.getDefaultInstance();
      velocity_ = skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector2D.getDefaultInstance();
      latency_ = 0;
      entindex_ = 0;
      particleIndex_ = 0L;
      handle_ = 0;
      acceleration_ = skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector2D.getDefaultInstance();
      maxSpeed_ = 0F;
      fowRadius_ = 0F;
      stickyFowReveal_ = false;
      distance_ = 0F;
      colorgemcolor_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, origin_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(2, velocity_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeInt32(3, latency_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeInt32(4, entindex_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeUInt64(5, particleIndex_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeInt32(6, handle_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        output.writeMessage(7, acceleration_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        output.writeFloat(8, maxSpeed_);
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        output.writeFloat(9, fowRadius_);
      }
      if (((bitField0_ & 0x00000200) == 0x00000200)) {
        output.writeBool(10, stickyFowReveal_);
      }
      if (((bitField0_ & 0x00000400) == 0x00000400)) {
        output.writeFloat(11, distance_);
      }
      if (((bitField0_ & 0x00000800) == 0x00000800)) {
        output.writeFixed32(12, colorgemcolor_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, origin_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, velocity_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, latency_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, entindex_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(5, particleIndex_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(6, handle_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(7, acceleration_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(8, maxSpeed_);
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(9, fowRadius_);
      }
      if (((bitField0_ & 0x00000200) == 0x00000200)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(10, stickyFowReveal_);
      }
      if (((bitField0_ & 0x00000400) == 0x00000400)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(11, distance_);
      }
      if (((bitField0_ & 0x00000800) == 0x00000800)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFixed32Size(12, colorgemcolor_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CreateLinearProjectile parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CreateLinearProjectile parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CreateLinearProjectile parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CreateLinearProjectile parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CreateLinearProjectile parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CreateLinearProjectile parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CreateLinearProjectile parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CreateLinearProjectile parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CreateLinearProjectile parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CreateLinearProjectile parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CreateLinearProjectile prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_CreateLinearProjectile}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_CreateLinearProjectile)
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CreateLinearProjectileOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_CreateLinearProjectile_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_CreateLinearProjectile_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CreateLinearProjectile.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CreateLinearProjectile.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CreateLinearProjectile.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getOriginFieldBuilder();
          getVelocityFieldBuilder();
          getAccelerationFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        if (originBuilder_ == null) {
          origin_ = skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.getDefaultInstance();
        } else {
          originBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        if (velocityBuilder_ == null) {
          velocity_ = skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector2D.getDefaultInstance();
        } else {
          velocityBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        latency_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        entindex_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        particleIndex_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000010);
        handle_ = 0;
        bitField0_ = (bitField0_ & ~0x00000020);
        if (accelerationBuilder_ == null) {
          acceleration_ = skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector2D.getDefaultInstance();
        } else {
          accelerationBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000040);
        maxSpeed_ = 0F;
        bitField0_ = (bitField0_ & ~0x00000080);
        fowRadius_ = 0F;
        bitField0_ = (bitField0_ & ~0x00000100);
        stickyFowReveal_ = false;
        bitField0_ = (bitField0_ & ~0x00000200);
        distance_ = 0F;
        bitField0_ = (bitField0_ & ~0x00000400);
        colorgemcolor_ = 0;
        bitField0_ = (bitField0_ & ~0x00000800);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_CreateLinearProjectile_descriptor;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CreateLinearProjectile getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CreateLinearProjectile.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CreateLinearProjectile build() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CreateLinearProjectile result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CreateLinearProjectile buildPartial() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CreateLinearProjectile result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CreateLinearProjectile(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (originBuilder_ == null) {
          result.origin_ = origin_;
        } else {
          result.origin_ = originBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        if (velocityBuilder_ == null) {
          result.velocity_ = velocity_;
        } else {
          result.velocity_ = velocityBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.latency_ = latency_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.entindex_ = entindex_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.particleIndex_ = particleIndex_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        result.handle_ = handle_;
        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
          to_bitField0_ |= 0x00000040;
        }
        if (accelerationBuilder_ == null) {
          result.acceleration_ = acceleration_;
        } else {
          result.acceleration_ = accelerationBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
          to_bitField0_ |= 0x00000080;
        }
        result.maxSpeed_ = maxSpeed_;
        if (((from_bitField0_ & 0x00000100) == 0x00000100)) {
          to_bitField0_ |= 0x00000100;
        }
        result.fowRadius_ = fowRadius_;
        if (((from_bitField0_ & 0x00000200) == 0x00000200)) {
          to_bitField0_ |= 0x00000200;
        }
        result.stickyFowReveal_ = stickyFowReveal_;
        if (((from_bitField0_ & 0x00000400) == 0x00000400)) {
          to_bitField0_ |= 0x00000400;
        }
        result.distance_ = distance_;
        if (((from_bitField0_ & 0x00000800) == 0x00000800)) {
          to_bitField0_ |= 0x00000800;
        }
        result.colorgemcolor_ = colorgemcolor_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CreateLinearProjectile) {
          return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CreateLinearProjectile)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CreateLinearProjectile other) {
        if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CreateLinearProjectile.getDefaultInstance()) return this;
        if (other.hasOrigin()) {
          mergeOrigin(other.getOrigin());
        }
        if (other.hasVelocity()) {
          mergeVelocity(other.getVelocity());
        }
        if (other.hasLatency()) {
          setLatency(other.getLatency());
        }
        if (other.hasEntindex()) {
          setEntindex(other.getEntindex());
        }
        if (other.hasParticleIndex()) {
          setParticleIndex(other.getParticleIndex());
        }
        if (other.hasHandle()) {
          setHandle(other.getHandle());
        }
        if (other.hasAcceleration()) {
          mergeAcceleration(other.getAcceleration());
        }
        if (other.hasMaxSpeed()) {
          setMaxSpeed(other.getMaxSpeed());
        }
        if (other.hasFowRadius()) {
          setFowRadius(other.getFowRadius());
        }
        if (other.hasStickyFowReveal()) {
          setStickyFowReveal(other.getStickyFowReveal());
        }
        if (other.hasDistance()) {
          setDistance(other.getDistance());
        }
        if (other.hasColorgemcolor()) {
          setColorgemcolor(other.getColorgemcolor());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CreateLinearProjectile parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_CreateLinearProjectile) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector origin_ = skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder> originBuilder_;
      /**
       * optional .CMsgVector origin = 1;
       */
      public boolean hasOrigin() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional .CMsgVector origin = 1;
       */
      public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector getOrigin() {
        if (originBuilder_ == null) {
          return origin_;
        } else {
          return originBuilder_.getMessage();
        }
      }
      /**
       * optional .CMsgVector origin = 1;
       */
      public Builder setOrigin(skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector value) {
        if (originBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          origin_ = value;
          onChanged();
        } else {
          originBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * optional .CMsgVector origin = 1;
       */
      public Builder setOrigin(
          skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder builderForValue) {
        if (originBuilder_ == null) {
          origin_ = builderForValue.build();
          onChanged();
        } else {
          originBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * optional .CMsgVector origin = 1;
       */
      public Builder mergeOrigin(skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector value) {
        if (originBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001) &&
              origin_ != skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.getDefaultInstance()) {
            origin_ =
              skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.newBuilder(origin_).mergeFrom(value).buildPartial();
          } else {
            origin_ = value;
          }
          onChanged();
        } else {
          originBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * optional .CMsgVector origin = 1;
       */
      public Builder clearOrigin() {
        if (originBuilder_ == null) {
          origin_ = skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.getDefaultInstance();
          onChanged();
        } else {
          originBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * optional .CMsgVector origin = 1;
       */
      public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder getOriginBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getOriginFieldBuilder().getBuilder();
      }
      /**
       * optional .CMsgVector origin = 1;
       */
      public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder getOriginOrBuilder() {
        if (originBuilder_ != null) {
          return originBuilder_.getMessageOrBuilder();
        } else {
          return origin_;
        }
      }
      /**
       * optional .CMsgVector origin = 1;
       */
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder> 
          getOriginFieldBuilder() {
        if (originBuilder_ == null) {
          originBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder>(
                  getOrigin(),
                  getParentForChildren(),
                  isClean());
          origin_ = null;
        }
        return originBuilder_;
      }

      private skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector2D velocity_ = skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector2D.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector2D, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector2D.Builder, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector2DOrBuilder> velocityBuilder_;
      /**
       * optional .CMsgVector2D velocity = 2;
       */
      public boolean hasVelocity() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional .CMsgVector2D velocity = 2;
       */
      public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector2D getVelocity() {
        if (velocityBuilder_ == null) {
          return velocity_;
        } else {
          return velocityBuilder_.getMessage();
        }
      }
      /**
       * optional .CMsgVector2D velocity = 2;
       */
      public Builder setVelocity(skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector2D value) {
        if (velocityBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          velocity_ = value;
          onChanged();
        } else {
          velocityBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * optional .CMsgVector2D velocity = 2;
       */
      public Builder setVelocity(
          skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector2D.Builder builderForValue) {
        if (velocityBuilder_ == null) {
          velocity_ = builderForValue.build();
          onChanged();
        } else {
          velocityBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * optional .CMsgVector2D velocity = 2;
       */
      public Builder mergeVelocity(skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector2D value) {
        if (velocityBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002) &&
              velocity_ != skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector2D.getDefaultInstance()) {
            velocity_ =
              skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector2D.newBuilder(velocity_).mergeFrom(value).buildPartial();
          } else {
            velocity_ = value;
          }
          onChanged();
        } else {
          velocityBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * optional .CMsgVector2D velocity = 2;
       */
      public Builder clearVelocity() {
        if (velocityBuilder_ == null) {
          velocity_ = skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector2D.getDefaultInstance();
          onChanged();
        } else {
          velocityBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      /**
       * optional .CMsgVector2D velocity = 2;
       */
      public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector2D.Builder getVelocityBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getVelocityFieldBuilder().getBuilder();
      }
      /**
       * optional .CMsgVector2D velocity = 2;
       */
      public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector2DOrBuilder getVelocityOrBuilder() {
        if (velocityBuilder_ != null) {
          return velocityBuilder_.getMessageOrBuilder();
        } else {
          return velocity_;
        }
      }
      /**
       * optional .CMsgVector2D velocity = 2;
       */
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector2D, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector2D.Builder, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector2DOrBuilder> 
          getVelocityFieldBuilder() {
        if (velocityBuilder_ == null) {
          velocityBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector2D, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector2D.Builder, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector2DOrBuilder>(
                  getVelocity(),
                  getParentForChildren(),
                  isClean());
          velocity_ = null;
        }
        return velocityBuilder_;
      }

      private int latency_ ;
      /**
       * optional int32 latency = 3;
       */
      public boolean hasLatency() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional int32 latency = 3;
       */
      public int getLatency() {
        return latency_;
      }
      /**
       * optional int32 latency = 3;
       */
      public Builder setLatency(int value) {
        bitField0_ |= 0x00000004;
        latency_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 latency = 3;
       */
      public Builder clearLatency() {
        bitField0_ = (bitField0_ & ~0x00000004);
        latency_ = 0;
        onChanged();
        return this;
      }

      private int entindex_ ;
      /**
       * optional int32 entindex = 4;
       */
      public boolean hasEntindex() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional int32 entindex = 4;
       */
      public int getEntindex() {
        return entindex_;
      }
      /**
       * optional int32 entindex = 4;
       */
      public Builder setEntindex(int value) {
        bitField0_ |= 0x00000008;
        entindex_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 entindex = 4;
       */
      public Builder clearEntindex() {
        bitField0_ = (bitField0_ & ~0x00000008);
        entindex_ = 0;
        onChanged();
        return this;
      }

      private long particleIndex_ ;
      /**
       * optional uint64 particle_index = 5;
       */
      public boolean hasParticleIndex() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * optional uint64 particle_index = 5;
       */
      public long getParticleIndex() {
        return particleIndex_;
      }
      /**
       * optional uint64 particle_index = 5;
       */
      public Builder setParticleIndex(long value) {
        bitField0_ |= 0x00000010;
        particleIndex_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint64 particle_index = 5;
       */
      public Builder clearParticleIndex() {
        bitField0_ = (bitField0_ & ~0x00000010);
        particleIndex_ = 0L;
        onChanged();
        return this;
      }

      private int handle_ ;
      /**
       * optional int32 handle = 6;
       */
      public boolean hasHandle() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * optional int32 handle = 6;
       */
      public int getHandle() {
        return handle_;
      }
      /**
       * optional int32 handle = 6;
       */
      public Builder setHandle(int value) {
        bitField0_ |= 0x00000020;
        handle_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 handle = 6;
       */
      public Builder clearHandle() {
        bitField0_ = (bitField0_ & ~0x00000020);
        handle_ = 0;
        onChanged();
        return this;
      }

      private skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector2D acceleration_ = skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector2D.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector2D, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector2D.Builder, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector2DOrBuilder> accelerationBuilder_;
      /**
       * optional .CMsgVector2D acceleration = 7;
       */
      public boolean hasAcceleration() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      /**
       * optional .CMsgVector2D acceleration = 7;
       */
      public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector2D getAcceleration() {
        if (accelerationBuilder_ == null) {
          return acceleration_;
        } else {
          return accelerationBuilder_.getMessage();
        }
      }
      /**
       * optional .CMsgVector2D acceleration = 7;
       */
      public Builder setAcceleration(skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector2D value) {
        if (accelerationBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          acceleration_ = value;
          onChanged();
        } else {
          accelerationBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000040;
        return this;
      }
      /**
       * optional .CMsgVector2D acceleration = 7;
       */
      public Builder setAcceleration(
          skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector2D.Builder builderForValue) {
        if (accelerationBuilder_ == null) {
          acceleration_ = builderForValue.build();
          onChanged();
        } else {
          accelerationBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000040;
        return this;
      }
      /**
       * optional .CMsgVector2D acceleration = 7;
       */
      public Builder mergeAcceleration(skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector2D value) {
        if (accelerationBuilder_ == null) {
          if (((bitField0_ & 0x00000040) == 0x00000040) &&
              acceleration_ != skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector2D.getDefaultInstance()) {
            acceleration_ =
              skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector2D.newBuilder(acceleration_).mergeFrom(value).buildPartial();
          } else {
            acceleration_ = value;
          }
          onChanged();
        } else {
          accelerationBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000040;
        return this;
      }
      /**
       * optional .CMsgVector2D acceleration = 7;
       */
      public Builder clearAcceleration() {
        if (accelerationBuilder_ == null) {
          acceleration_ = skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector2D.getDefaultInstance();
          onChanged();
        } else {
          accelerationBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000040);
        return this;
      }
      /**
       * optional .CMsgVector2D acceleration = 7;
       */
      public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector2D.Builder getAccelerationBuilder() {
        bitField0_ |= 0x00000040;
        onChanged();
        return getAccelerationFieldBuilder().getBuilder();
      }
      /**
       * optional .CMsgVector2D acceleration = 7;
       */
      public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector2DOrBuilder getAccelerationOrBuilder() {
        if (accelerationBuilder_ != null) {
          return accelerationBuilder_.getMessageOrBuilder();
        } else {
          return acceleration_;
        }
      }
      /**
       * optional .CMsgVector2D acceleration = 7;
       */
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector2D, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector2D.Builder, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector2DOrBuilder> 
          getAccelerationFieldBuilder() {
        if (accelerationBuilder_ == null) {
          accelerationBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector2D, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector2D.Builder, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector2DOrBuilder>(
                  getAcceleration(),
                  getParentForChildren(),
                  isClean());
          acceleration_ = null;
        }
        return accelerationBuilder_;
      }

      private float maxSpeed_ ;
      /**
       * optional float max_speed = 8;
       */
      public boolean hasMaxSpeed() {
        return ((bitField0_ & 0x00000080) == 0x00000080);
      }
      /**
       * optional float max_speed = 8;
       */
      public float getMaxSpeed() {
        return maxSpeed_;
      }
      /**
       * optional float max_speed = 8;
       */
      public Builder setMaxSpeed(float value) {
        bitField0_ |= 0x00000080;
        maxSpeed_ = value;
        onChanged();
        return this;
      }
      /**
       * optional float max_speed = 8;
       */
      public Builder clearMaxSpeed() {
        bitField0_ = (bitField0_ & ~0x00000080);
        maxSpeed_ = 0F;
        onChanged();
        return this;
      }

      private float fowRadius_ ;
      /**
       * optional float fow_radius = 9;
       */
      public boolean hasFowRadius() {
        return ((bitField0_ & 0x00000100) == 0x00000100);
      }
      /**
       * optional float fow_radius = 9;
       */
      public float getFowRadius() {
        return fowRadius_;
      }
      /**
       * optional float fow_radius = 9;
       */
      public Builder setFowRadius(float value) {
        bitField0_ |= 0x00000100;
        fowRadius_ = value;
        onChanged();
        return this;
      }
      /**
       * optional float fow_radius = 9;
       */
      public Builder clearFowRadius() {
        bitField0_ = (bitField0_ & ~0x00000100);
        fowRadius_ = 0F;
        onChanged();
        return this;
      }

      private boolean stickyFowReveal_ ;
      /**
       * optional bool sticky_fow_reveal = 10;
       */
      public boolean hasStickyFowReveal() {
        return ((bitField0_ & 0x00000200) == 0x00000200);
      }
      /**
       * optional bool sticky_fow_reveal = 10;
       */
      public boolean getStickyFowReveal() {
        return stickyFowReveal_;
      }
      /**
       * optional bool sticky_fow_reveal = 10;
       */
      public Builder setStickyFowReveal(boolean value) {
        bitField0_ |= 0x00000200;
        stickyFowReveal_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool sticky_fow_reveal = 10;
       */
      public Builder clearStickyFowReveal() {
        bitField0_ = (bitField0_ & ~0x00000200);
        stickyFowReveal_ = false;
        onChanged();
        return this;
      }

      private float distance_ ;
      /**
       * optional float distance = 11;
       */
      public boolean hasDistance() {
        return ((bitField0_ & 0x00000400) == 0x00000400);
      }
      /**
       * optional float distance = 11;
       */
      public float getDistance() {
        return distance_;
      }
      /**
       * optional float distance = 11;
       */
      public Builder setDistance(float value) {
        bitField0_ |= 0x00000400;
        distance_ = value;
        onChanged();
        return this;
      }
      /**
       * optional float distance = 11;
       */
      public Builder clearDistance() {
        bitField0_ = (bitField0_ & ~0x00000400);
        distance_ = 0F;
        onChanged();
        return this;
      }

      private int colorgemcolor_ ;
      /**
       * optional fixed32 colorgemcolor = 12;
       */
      public boolean hasColorgemcolor() {
        return ((bitField0_ & 0x00000800) == 0x00000800);
      }
      /**
       * optional fixed32 colorgemcolor = 12;
       */
      public int getColorgemcolor() {
        return colorgemcolor_;
      }
      /**
       * optional fixed32 colorgemcolor = 12;
       */
      public Builder setColorgemcolor(int value) {
        bitField0_ |= 0x00000800;
        colorgemcolor_ = value;
        onChanged();
        return this;
      }
      /**
       * optional fixed32 colorgemcolor = 12;
       */
      public Builder clearColorgemcolor() {
        bitField0_ = (bitField0_ & ~0x00000800);
        colorgemcolor_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_CreateLinearProjectile)
    }

    static {
      defaultInstance = new CDOTAUserMsg_CreateLinearProjectile(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_CreateLinearProjectile)
  }

  public interface CDOTAUserMsg_DestroyLinearProjectileOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_DestroyLinearProjectile)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional int32 handle = 1;
     */
    boolean hasHandle();
    /**
     * optional int32 handle = 1;
     */
    int getHandle();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_DestroyLinearProjectile}
   */
  public static final class CDOTAUserMsg_DestroyLinearProjectile extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_DestroyLinearProjectile)
      CDOTAUserMsg_DestroyLinearProjectileOrBuilder {
    // Use CDOTAUserMsg_DestroyLinearProjectile.newBuilder() to construct.
    private CDOTAUserMsg_DestroyLinearProjectile(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_DestroyLinearProjectile(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_DestroyLinearProjectile defaultInstance;
    public static CDOTAUserMsg_DestroyLinearProjectile getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_DestroyLinearProjectile getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_DestroyLinearProjectile(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              handle_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_DestroyLinearProjectile_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_DestroyLinearProjectile_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DestroyLinearProjectile.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DestroyLinearProjectile.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_DestroyLinearProjectile parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_DestroyLinearProjectile(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int HANDLE_FIELD_NUMBER = 1;
    private int handle_;
    /**
     * optional int32 handle = 1;
     */
    public boolean hasHandle() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 handle = 1;
     */
    public int getHandle() {
      return handle_;
    }

    private void initFields() {
      handle_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, handle_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, handle_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DestroyLinearProjectile parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DestroyLinearProjectile parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DestroyLinearProjectile parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DestroyLinearProjectile parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DestroyLinearProjectile parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DestroyLinearProjectile parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DestroyLinearProjectile parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DestroyLinearProjectile parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DestroyLinearProjectile parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DestroyLinearProjectile parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DestroyLinearProjectile prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_DestroyLinearProjectile}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_DestroyLinearProjectile)
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DestroyLinearProjectileOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_DestroyLinearProjectile_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_DestroyLinearProjectile_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DestroyLinearProjectile.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DestroyLinearProjectile.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DestroyLinearProjectile.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        handle_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_DestroyLinearProjectile_descriptor;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DestroyLinearProjectile getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DestroyLinearProjectile.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DestroyLinearProjectile build() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DestroyLinearProjectile result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DestroyLinearProjectile buildPartial() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DestroyLinearProjectile result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DestroyLinearProjectile(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.handle_ = handle_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DestroyLinearProjectile) {
          return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DestroyLinearProjectile)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DestroyLinearProjectile other) {
        if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DestroyLinearProjectile.getDefaultInstance()) return this;
        if (other.hasHandle()) {
          setHandle(other.getHandle());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DestroyLinearProjectile parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DestroyLinearProjectile) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int handle_ ;
      /**
       * optional int32 handle = 1;
       */
      public boolean hasHandle() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 handle = 1;
       */
      public int getHandle() {
        return handle_;
      }
      /**
       * optional int32 handle = 1;
       */
      public Builder setHandle(int value) {
        bitField0_ |= 0x00000001;
        handle_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 handle = 1;
       */
      public Builder clearHandle() {
        bitField0_ = (bitField0_ & ~0x00000001);
        handle_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_DestroyLinearProjectile)
    }

    static {
      defaultInstance = new CDOTAUserMsg_DestroyLinearProjectile(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_DestroyLinearProjectile)
  }

  public interface CDOTAUserMsg_DodgeTrackingProjectilesOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_DodgeTrackingProjectiles)
      com.google.protobuf.MessageOrBuilder {

    /**
     * required int32 entindex = 1;
     */
    boolean hasEntindex();
    /**
     * required int32 entindex = 1;
     */
    int getEntindex();

    /**
     * optional bool attacks_only = 2;
     */
    boolean hasAttacksOnly();
    /**
     * optional bool attacks_only = 2;
     */
    boolean getAttacksOnly();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_DodgeTrackingProjectiles}
   */
  public static final class CDOTAUserMsg_DodgeTrackingProjectiles extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_DodgeTrackingProjectiles)
      CDOTAUserMsg_DodgeTrackingProjectilesOrBuilder {
    // Use CDOTAUserMsg_DodgeTrackingProjectiles.newBuilder() to construct.
    private CDOTAUserMsg_DodgeTrackingProjectiles(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_DodgeTrackingProjectiles(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_DodgeTrackingProjectiles defaultInstance;
    public static CDOTAUserMsg_DodgeTrackingProjectiles getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_DodgeTrackingProjectiles getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_DodgeTrackingProjectiles(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              entindex_ = input.readInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              attacksOnly_ = input.readBool();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_DodgeTrackingProjectiles_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_DodgeTrackingProjectiles_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DodgeTrackingProjectiles.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DodgeTrackingProjectiles.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_DodgeTrackingProjectiles parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_DodgeTrackingProjectiles(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int ENTINDEX_FIELD_NUMBER = 1;
    private int entindex_;
    /**
     * required int32 entindex = 1;
     */
    public boolean hasEntindex() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * required int32 entindex = 1;
     */
    public int getEntindex() {
      return entindex_;
    }

    public static final int ATTACKS_ONLY_FIELD_NUMBER = 2;
    private boolean attacksOnly_;
    /**
     * optional bool attacks_only = 2;
     */
    public boolean hasAttacksOnly() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional bool attacks_only = 2;
     */
    public boolean getAttacksOnly() {
      return attacksOnly_;
    }

    private void initFields() {
      entindex_ = 0;
      attacksOnly_ = false;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasEntindex()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, entindex_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBool(2, attacksOnly_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, entindex_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(2, attacksOnly_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DodgeTrackingProjectiles parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DodgeTrackingProjectiles parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DodgeTrackingProjectiles parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DodgeTrackingProjectiles parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DodgeTrackingProjectiles parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DodgeTrackingProjectiles parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DodgeTrackingProjectiles parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DodgeTrackingProjectiles parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DodgeTrackingProjectiles parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DodgeTrackingProjectiles parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DodgeTrackingProjectiles prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_DodgeTrackingProjectiles}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_DodgeTrackingProjectiles)
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DodgeTrackingProjectilesOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_DodgeTrackingProjectiles_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_DodgeTrackingProjectiles_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DodgeTrackingProjectiles.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DodgeTrackingProjectiles.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DodgeTrackingProjectiles.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        entindex_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        attacksOnly_ = false;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_DodgeTrackingProjectiles_descriptor;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DodgeTrackingProjectiles getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DodgeTrackingProjectiles.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DodgeTrackingProjectiles build() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DodgeTrackingProjectiles result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DodgeTrackingProjectiles buildPartial() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DodgeTrackingProjectiles result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DodgeTrackingProjectiles(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.entindex_ = entindex_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.attacksOnly_ = attacksOnly_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DodgeTrackingProjectiles) {
          return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DodgeTrackingProjectiles)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DodgeTrackingProjectiles other) {
        if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DodgeTrackingProjectiles.getDefaultInstance()) return this;
        if (other.hasEntindex()) {
          setEntindex(other.getEntindex());
        }
        if (other.hasAttacksOnly()) {
          setAttacksOnly(other.getAttacksOnly());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasEntindex()) {
          
          return false;
        }
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DodgeTrackingProjectiles parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DodgeTrackingProjectiles) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int entindex_ ;
      /**
       * required int32 entindex = 1;
       */
      public boolean hasEntindex() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * required int32 entindex = 1;
       */
      public int getEntindex() {
        return entindex_;
      }
      /**
       * required int32 entindex = 1;
       */
      public Builder setEntindex(int value) {
        bitField0_ |= 0x00000001;
        entindex_ = value;
        onChanged();
        return this;
      }
      /**
       * required int32 entindex = 1;
       */
      public Builder clearEntindex() {
        bitField0_ = (bitField0_ & ~0x00000001);
        entindex_ = 0;
        onChanged();
        return this;
      }

      private boolean attacksOnly_ ;
      /**
       * optional bool attacks_only = 2;
       */
      public boolean hasAttacksOnly() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional bool attacks_only = 2;
       */
      public boolean getAttacksOnly() {
        return attacksOnly_;
      }
      /**
       * optional bool attacks_only = 2;
       */
      public Builder setAttacksOnly(boolean value) {
        bitField0_ |= 0x00000002;
        attacksOnly_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool attacks_only = 2;
       */
      public Builder clearAttacksOnly() {
        bitField0_ = (bitField0_ & ~0x00000002);
        attacksOnly_ = false;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_DodgeTrackingProjectiles)
    }

    static {
      defaultInstance = new CDOTAUserMsg_DodgeTrackingProjectiles(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_DodgeTrackingProjectiles)
  }

  public interface CDOTAUserMsg_SpectatorPlayerClickOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_SpectatorPlayerClick)
      com.google.protobuf.MessageOrBuilder {

    /**
     * required int32 entindex = 1;
     */
    boolean hasEntindex();
    /**
     * required int32 entindex = 1;
     */
    int getEntindex();

    /**
     * optional int32 order_type = 2;
     */
    boolean hasOrderType();
    /**
     * optional int32 order_type = 2;
     */
    int getOrderType();

    /**
     * optional int32 target_index = 3;
     */
    boolean hasTargetIndex();
    /**
     * optional int32 target_index = 3;
     */
    int getTargetIndex();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_SpectatorPlayerClick}
   */
  public static final class CDOTAUserMsg_SpectatorPlayerClick extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_SpectatorPlayerClick)
      CDOTAUserMsg_SpectatorPlayerClickOrBuilder {
    // Use CDOTAUserMsg_SpectatorPlayerClick.newBuilder() to construct.
    private CDOTAUserMsg_SpectatorPlayerClick(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_SpectatorPlayerClick(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_SpectatorPlayerClick defaultInstance;
    public static CDOTAUserMsg_SpectatorPlayerClick getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_SpectatorPlayerClick getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_SpectatorPlayerClick(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              entindex_ = input.readInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              orderType_ = input.readInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              targetIndex_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_SpectatorPlayerClick_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_SpectatorPlayerClick_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SpectatorPlayerClick.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SpectatorPlayerClick.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_SpectatorPlayerClick parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_SpectatorPlayerClick(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int ENTINDEX_FIELD_NUMBER = 1;
    private int entindex_;
    /**
     * required int32 entindex = 1;
     */
    public boolean hasEntindex() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * required int32 entindex = 1;
     */
    public int getEntindex() {
      return entindex_;
    }

    public static final int ORDER_TYPE_FIELD_NUMBER = 2;
    private int orderType_;
    /**
     * optional int32 order_type = 2;
     */
    public boolean hasOrderType() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional int32 order_type = 2;
     */
    public int getOrderType() {
      return orderType_;
    }

    public static final int TARGET_INDEX_FIELD_NUMBER = 3;
    private int targetIndex_;
    /**
     * optional int32 target_index = 3;
     */
    public boolean hasTargetIndex() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional int32 target_index = 3;
     */
    public int getTargetIndex() {
      return targetIndex_;
    }

    private void initFields() {
      entindex_ = 0;
      orderType_ = 0;
      targetIndex_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasEntindex()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, entindex_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, orderType_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeInt32(3, targetIndex_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, entindex_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, orderType_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, targetIndex_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SpectatorPlayerClick parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SpectatorPlayerClick parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SpectatorPlayerClick parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SpectatorPlayerClick parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SpectatorPlayerClick parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SpectatorPlayerClick parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SpectatorPlayerClick parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SpectatorPlayerClick parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SpectatorPlayerClick parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SpectatorPlayerClick parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SpectatorPlayerClick prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_SpectatorPlayerClick}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_SpectatorPlayerClick)
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SpectatorPlayerClickOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_SpectatorPlayerClick_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_SpectatorPlayerClick_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SpectatorPlayerClick.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SpectatorPlayerClick.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SpectatorPlayerClick.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        entindex_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        orderType_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        targetIndex_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_SpectatorPlayerClick_descriptor;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SpectatorPlayerClick getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SpectatorPlayerClick.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SpectatorPlayerClick build() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SpectatorPlayerClick result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SpectatorPlayerClick buildPartial() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SpectatorPlayerClick result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SpectatorPlayerClick(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.entindex_ = entindex_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.orderType_ = orderType_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.targetIndex_ = targetIndex_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SpectatorPlayerClick) {
          return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SpectatorPlayerClick)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SpectatorPlayerClick other) {
        if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SpectatorPlayerClick.getDefaultInstance()) return this;
        if (other.hasEntindex()) {
          setEntindex(other.getEntindex());
        }
        if (other.hasOrderType()) {
          setOrderType(other.getOrderType());
        }
        if (other.hasTargetIndex()) {
          setTargetIndex(other.getTargetIndex());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasEntindex()) {
          
          return false;
        }
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SpectatorPlayerClick parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SpectatorPlayerClick) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int entindex_ ;
      /**
       * required int32 entindex = 1;
       */
      public boolean hasEntindex() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * required int32 entindex = 1;
       */
      public int getEntindex() {
        return entindex_;
      }
      /**
       * required int32 entindex = 1;
       */
      public Builder setEntindex(int value) {
        bitField0_ |= 0x00000001;
        entindex_ = value;
        onChanged();
        return this;
      }
      /**
       * required int32 entindex = 1;
       */
      public Builder clearEntindex() {
        bitField0_ = (bitField0_ & ~0x00000001);
        entindex_ = 0;
        onChanged();
        return this;
      }

      private int orderType_ ;
      /**
       * optional int32 order_type = 2;
       */
      public boolean hasOrderType() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional int32 order_type = 2;
       */
      public int getOrderType() {
        return orderType_;
      }
      /**
       * optional int32 order_type = 2;
       */
      public Builder setOrderType(int value) {
        bitField0_ |= 0x00000002;
        orderType_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 order_type = 2;
       */
      public Builder clearOrderType() {
        bitField0_ = (bitField0_ & ~0x00000002);
        orderType_ = 0;
        onChanged();
        return this;
      }

      private int targetIndex_ ;
      /**
       * optional int32 target_index = 3;
       */
      public boolean hasTargetIndex() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional int32 target_index = 3;
       */
      public int getTargetIndex() {
        return targetIndex_;
      }
      /**
       * optional int32 target_index = 3;
       */
      public Builder setTargetIndex(int value) {
        bitField0_ |= 0x00000004;
        targetIndex_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 target_index = 3;
       */
      public Builder clearTargetIndex() {
        bitField0_ = (bitField0_ & ~0x00000004);
        targetIndex_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_SpectatorPlayerClick)
    }

    static {
      defaultInstance = new CDOTAUserMsg_SpectatorPlayerClick(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_SpectatorPlayerClick)
  }

  public interface CDOTAUserMsg_SpectatorPlayerUnitOrdersOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_SpectatorPlayerUnitOrders)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional int32 entindex = 1;
     */
    boolean hasEntindex();
    /**
     * optional int32 entindex = 1;
     */
    int getEntindex();

    /**
     * optional int32 order_type = 2;
     */
    boolean hasOrderType();
    /**
     * optional int32 order_type = 2;
     */
    int getOrderType();

    /**
     * repeated int32 units = 3;
     */
    java.util.List getUnitsList();
    /**
     * repeated int32 units = 3;
     */
    int getUnitsCount();
    /**
     * repeated int32 units = 3;
     */
    int getUnits(int index);

    /**
     * optional int32 target_index = 4;
     */
    boolean hasTargetIndex();
    /**
     * optional int32 target_index = 4;
     */
    int getTargetIndex();

    /**
     * optional int32 ability_id = 5;
     */
    boolean hasAbilityId();
    /**
     * optional int32 ability_id = 5;
     */
    int getAbilityId();

    /**
     * optional .CMsgVector position = 6;
     */
    boolean hasPosition();
    /**
     * optional .CMsgVector position = 6;
     */
    skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector getPosition();
    /**
     * optional .CMsgVector position = 6;
     */
    skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder getPositionOrBuilder();

    /**
     * optional bool queue = 7;
     */
    boolean hasQueue();
    /**
     * optional bool queue = 7;
     */
    boolean getQueue();

    /**
     * optional int32 sequence_number = 8;
     */
    boolean hasSequenceNumber();
    /**
     * optional int32 sequence_number = 8;
     */
    int getSequenceNumber();

    /**
     * optional uint32 flags = 9;
     */
    boolean hasFlags();
    /**
     * optional uint32 flags = 9;
     */
    int getFlags();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_SpectatorPlayerUnitOrders}
   */
  public static final class CDOTAUserMsg_SpectatorPlayerUnitOrders extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_SpectatorPlayerUnitOrders)
      CDOTAUserMsg_SpectatorPlayerUnitOrdersOrBuilder {
    // Use CDOTAUserMsg_SpectatorPlayerUnitOrders.newBuilder() to construct.
    private CDOTAUserMsg_SpectatorPlayerUnitOrders(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_SpectatorPlayerUnitOrders(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_SpectatorPlayerUnitOrders defaultInstance;
    public static CDOTAUserMsg_SpectatorPlayerUnitOrders getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_SpectatorPlayerUnitOrders getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_SpectatorPlayerUnitOrders(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              entindex_ = input.readInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              orderType_ = input.readInt32();
              break;
            }
            case 24: {
              if (!((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
                units_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000004;
              }
              units_.add(input.readInt32());
              break;
            }
            case 26: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              if (!((mutable_bitField0_ & 0x00000004) == 0x00000004) && input.getBytesUntilLimit() > 0) {
                units_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000004;
              }
              while (input.getBytesUntilLimit() > 0) {
                units_.add(input.readInt32());
              }
              input.popLimit(limit);
              break;
            }
            case 32: {
              bitField0_ |= 0x00000004;
              targetIndex_ = input.readInt32();
              break;
            }
            case 40: {
              bitField0_ |= 0x00000008;
              abilityId_ = input.readInt32();
              break;
            }
            case 50: {
              skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder subBuilder = null;
              if (((bitField0_ & 0x00000010) == 0x00000010)) {
                subBuilder = position_.toBuilder();
              }
              position_ = input.readMessage(skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(position_);
                position_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000010;
              break;
            }
            case 56: {
              bitField0_ |= 0x00000020;
              queue_ = input.readBool();
              break;
            }
            case 64: {
              bitField0_ |= 0x00000040;
              sequenceNumber_ = input.readInt32();
              break;
            }
            case 72: {
              bitField0_ |= 0x00000080;
              flags_ = input.readUInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
          units_ = java.util.Collections.unmodifiableList(units_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_SpectatorPlayerUnitOrders_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_SpectatorPlayerUnitOrders_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SpectatorPlayerUnitOrders.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SpectatorPlayerUnitOrders.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_SpectatorPlayerUnitOrders parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_SpectatorPlayerUnitOrders(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int ENTINDEX_FIELD_NUMBER = 1;
    private int entindex_;
    /**
     * optional int32 entindex = 1;
     */
    public boolean hasEntindex() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 entindex = 1;
     */
    public int getEntindex() {
      return entindex_;
    }

    public static final int ORDER_TYPE_FIELD_NUMBER = 2;
    private int orderType_;
    /**
     * optional int32 order_type = 2;
     */
    public boolean hasOrderType() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional int32 order_type = 2;
     */
    public int getOrderType() {
      return orderType_;
    }

    public static final int UNITS_FIELD_NUMBER = 3;
    private java.util.List units_;
    /**
     * repeated int32 units = 3;
     */
    public java.util.List
        getUnitsList() {
      return units_;
    }
    /**
     * repeated int32 units = 3;
     */
    public int getUnitsCount() {
      return units_.size();
    }
    /**
     * repeated int32 units = 3;
     */
    public int getUnits(int index) {
      return units_.get(index);
    }

    public static final int TARGET_INDEX_FIELD_NUMBER = 4;
    private int targetIndex_;
    /**
     * optional int32 target_index = 4;
     */
    public boolean hasTargetIndex() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional int32 target_index = 4;
     */
    public int getTargetIndex() {
      return targetIndex_;
    }

    public static final int ABILITY_ID_FIELD_NUMBER = 5;
    private int abilityId_;
    /**
     * optional int32 ability_id = 5;
     */
    public boolean hasAbilityId() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional int32 ability_id = 5;
     */
    public int getAbilityId() {
      return abilityId_;
    }

    public static final int POSITION_FIELD_NUMBER = 6;
    private skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector position_;
    /**
     * optional .CMsgVector position = 6;
     */
    public boolean hasPosition() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * optional .CMsgVector position = 6;
     */
    public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector getPosition() {
      return position_;
    }
    /**
     * optional .CMsgVector position = 6;
     */
    public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder getPositionOrBuilder() {
      return position_;
    }

    public static final int QUEUE_FIELD_NUMBER = 7;
    private boolean queue_;
    /**
     * optional bool queue = 7;
     */
    public boolean hasQueue() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     * optional bool queue = 7;
     */
    public boolean getQueue() {
      return queue_;
    }

    public static final int SEQUENCE_NUMBER_FIELD_NUMBER = 8;
    private int sequenceNumber_;
    /**
     * optional int32 sequence_number = 8;
     */
    public boolean hasSequenceNumber() {
      return ((bitField0_ & 0x00000040) == 0x00000040);
    }
    /**
     * optional int32 sequence_number = 8;
     */
    public int getSequenceNumber() {
      return sequenceNumber_;
    }

    public static final int FLAGS_FIELD_NUMBER = 9;
    private int flags_;
    /**
     * optional uint32 flags = 9;
     */
    public boolean hasFlags() {
      return ((bitField0_ & 0x00000080) == 0x00000080);
    }
    /**
     * optional uint32 flags = 9;
     */
    public int getFlags() {
      return flags_;
    }

    private void initFields() {
      entindex_ = 0;
      orderType_ = 0;
      units_ = java.util.Collections.emptyList();
      targetIndex_ = 0;
      abilityId_ = 0;
      position_ = skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.getDefaultInstance();
      queue_ = false;
      sequenceNumber_ = 0;
      flags_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, entindex_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, orderType_);
      }
      for (int i = 0; i < units_.size(); i++) {
        output.writeInt32(3, units_.get(i));
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeInt32(4, targetIndex_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeInt32(5, abilityId_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeMessage(6, position_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeBool(7, queue_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        output.writeInt32(8, sequenceNumber_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        output.writeUInt32(9, flags_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, entindex_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, orderType_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < units_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(units_.get(i));
        }
        size += dataSize;
        size += 1 * getUnitsList().size();
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, targetIndex_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(5, abilityId_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(6, position_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(7, queue_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(8, sequenceNumber_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(9, flags_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SpectatorPlayerUnitOrders parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SpectatorPlayerUnitOrders parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SpectatorPlayerUnitOrders parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SpectatorPlayerUnitOrders parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SpectatorPlayerUnitOrders parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SpectatorPlayerUnitOrders parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SpectatorPlayerUnitOrders parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SpectatorPlayerUnitOrders parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SpectatorPlayerUnitOrders parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SpectatorPlayerUnitOrders parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SpectatorPlayerUnitOrders prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_SpectatorPlayerUnitOrders}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_SpectatorPlayerUnitOrders)
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SpectatorPlayerUnitOrdersOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_SpectatorPlayerUnitOrders_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_SpectatorPlayerUnitOrders_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SpectatorPlayerUnitOrders.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SpectatorPlayerUnitOrders.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SpectatorPlayerUnitOrders.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getPositionFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        entindex_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        orderType_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        units_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000004);
        targetIndex_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        abilityId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000010);
        if (positionBuilder_ == null) {
          position_ = skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.getDefaultInstance();
        } else {
          positionBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000020);
        queue_ = false;
        bitField0_ = (bitField0_ & ~0x00000040);
        sequenceNumber_ = 0;
        bitField0_ = (bitField0_ & ~0x00000080);
        flags_ = 0;
        bitField0_ = (bitField0_ & ~0x00000100);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_SpectatorPlayerUnitOrders_descriptor;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SpectatorPlayerUnitOrders getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SpectatorPlayerUnitOrders.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SpectatorPlayerUnitOrders build() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SpectatorPlayerUnitOrders result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SpectatorPlayerUnitOrders buildPartial() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SpectatorPlayerUnitOrders result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SpectatorPlayerUnitOrders(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.entindex_ = entindex_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.orderType_ = orderType_;
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          units_ = java.util.Collections.unmodifiableList(units_);
          bitField0_ = (bitField0_ & ~0x00000004);
        }
        result.units_ = units_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000004;
        }
        result.targetIndex_ = targetIndex_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000008;
        }
        result.abilityId_ = abilityId_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000010;
        }
        if (positionBuilder_ == null) {
          result.position_ = position_;
        } else {
          result.position_ = positionBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
          to_bitField0_ |= 0x00000020;
        }
        result.queue_ = queue_;
        if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
          to_bitField0_ |= 0x00000040;
        }
        result.sequenceNumber_ = sequenceNumber_;
        if (((from_bitField0_ & 0x00000100) == 0x00000100)) {
          to_bitField0_ |= 0x00000080;
        }
        result.flags_ = flags_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SpectatorPlayerUnitOrders) {
          return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SpectatorPlayerUnitOrders)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SpectatorPlayerUnitOrders other) {
        if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SpectatorPlayerUnitOrders.getDefaultInstance()) return this;
        if (other.hasEntindex()) {
          setEntindex(other.getEntindex());
        }
        if (other.hasOrderType()) {
          setOrderType(other.getOrderType());
        }
        if (!other.units_.isEmpty()) {
          if (units_.isEmpty()) {
            units_ = other.units_;
            bitField0_ = (bitField0_ & ~0x00000004);
          } else {
            ensureUnitsIsMutable();
            units_.addAll(other.units_);
          }
          onChanged();
        }
        if (other.hasTargetIndex()) {
          setTargetIndex(other.getTargetIndex());
        }
        if (other.hasAbilityId()) {
          setAbilityId(other.getAbilityId());
        }
        if (other.hasPosition()) {
          mergePosition(other.getPosition());
        }
        if (other.hasQueue()) {
          setQueue(other.getQueue());
        }
        if (other.hasSequenceNumber()) {
          setSequenceNumber(other.getSequenceNumber());
        }
        if (other.hasFlags()) {
          setFlags(other.getFlags());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SpectatorPlayerUnitOrders parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SpectatorPlayerUnitOrders) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int entindex_ ;
      /**
       * optional int32 entindex = 1;
       */
      public boolean hasEntindex() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 entindex = 1;
       */
      public int getEntindex() {
        return entindex_;
      }
      /**
       * optional int32 entindex = 1;
       */
      public Builder setEntindex(int value) {
        bitField0_ |= 0x00000001;
        entindex_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 entindex = 1;
       */
      public Builder clearEntindex() {
        bitField0_ = (bitField0_ & ~0x00000001);
        entindex_ = 0;
        onChanged();
        return this;
      }

      private int orderType_ ;
      /**
       * optional int32 order_type = 2;
       */
      public boolean hasOrderType() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional int32 order_type = 2;
       */
      public int getOrderType() {
        return orderType_;
      }
      /**
       * optional int32 order_type = 2;
       */
      public Builder setOrderType(int value) {
        bitField0_ |= 0x00000002;
        orderType_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 order_type = 2;
       */
      public Builder clearOrderType() {
        bitField0_ = (bitField0_ & ~0x00000002);
        orderType_ = 0;
        onChanged();
        return this;
      }

      private java.util.List units_ = java.util.Collections.emptyList();
      private void ensureUnitsIsMutable() {
        if (!((bitField0_ & 0x00000004) == 0x00000004)) {
          units_ = new java.util.ArrayList(units_);
          bitField0_ |= 0x00000004;
         }
      }
      /**
       * repeated int32 units = 3;
       */
      public java.util.List
          getUnitsList() {
        return java.util.Collections.unmodifiableList(units_);
      }
      /**
       * repeated int32 units = 3;
       */
      public int getUnitsCount() {
        return units_.size();
      }
      /**
       * repeated int32 units = 3;
       */
      public int getUnits(int index) {
        return units_.get(index);
      }
      /**
       * repeated int32 units = 3;
       */
      public Builder setUnits(
          int index, int value) {
        ensureUnitsIsMutable();
        units_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * repeated int32 units = 3;
       */
      public Builder addUnits(int value) {
        ensureUnitsIsMutable();
        units_.add(value);
        onChanged();
        return this;
      }
      /**
       * repeated int32 units = 3;
       */
      public Builder addAllUnits(
          java.lang.Iterable values) {
        ensureUnitsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, units_);
        onChanged();
        return this;
      }
      /**
       * repeated int32 units = 3;
       */
      public Builder clearUnits() {
        units_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000004);
        onChanged();
        return this;
      }

      private int targetIndex_ ;
      /**
       * optional int32 target_index = 4;
       */
      public boolean hasTargetIndex() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional int32 target_index = 4;
       */
      public int getTargetIndex() {
        return targetIndex_;
      }
      /**
       * optional int32 target_index = 4;
       */
      public Builder setTargetIndex(int value) {
        bitField0_ |= 0x00000008;
        targetIndex_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 target_index = 4;
       */
      public Builder clearTargetIndex() {
        bitField0_ = (bitField0_ & ~0x00000008);
        targetIndex_ = 0;
        onChanged();
        return this;
      }

      private int abilityId_ ;
      /**
       * optional int32 ability_id = 5;
       */
      public boolean hasAbilityId() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * optional int32 ability_id = 5;
       */
      public int getAbilityId() {
        return abilityId_;
      }
      /**
       * optional int32 ability_id = 5;
       */
      public Builder setAbilityId(int value) {
        bitField0_ |= 0x00000010;
        abilityId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 ability_id = 5;
       */
      public Builder clearAbilityId() {
        bitField0_ = (bitField0_ & ~0x00000010);
        abilityId_ = 0;
        onChanged();
        return this;
      }

      private skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector position_ = skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder> positionBuilder_;
      /**
       * optional .CMsgVector position = 6;
       */
      public boolean hasPosition() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * optional .CMsgVector position = 6;
       */
      public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector getPosition() {
        if (positionBuilder_ == null) {
          return position_;
        } else {
          return positionBuilder_.getMessage();
        }
      }
      /**
       * optional .CMsgVector position = 6;
       */
      public Builder setPosition(skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector value) {
        if (positionBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          position_ = value;
          onChanged();
        } else {
          positionBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000020;
        return this;
      }
      /**
       * optional .CMsgVector position = 6;
       */
      public Builder setPosition(
          skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder builderForValue) {
        if (positionBuilder_ == null) {
          position_ = builderForValue.build();
          onChanged();
        } else {
          positionBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000020;
        return this;
      }
      /**
       * optional .CMsgVector position = 6;
       */
      public Builder mergePosition(skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector value) {
        if (positionBuilder_ == null) {
          if (((bitField0_ & 0x00000020) == 0x00000020) &&
              position_ != skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.getDefaultInstance()) {
            position_ =
              skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.newBuilder(position_).mergeFrom(value).buildPartial();
          } else {
            position_ = value;
          }
          onChanged();
        } else {
          positionBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000020;
        return this;
      }
      /**
       * optional .CMsgVector position = 6;
       */
      public Builder clearPosition() {
        if (positionBuilder_ == null) {
          position_ = skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.getDefaultInstance();
          onChanged();
        } else {
          positionBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000020);
        return this;
      }
      /**
       * optional .CMsgVector position = 6;
       */
      public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder getPositionBuilder() {
        bitField0_ |= 0x00000020;
        onChanged();
        return getPositionFieldBuilder().getBuilder();
      }
      /**
       * optional .CMsgVector position = 6;
       */
      public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder getPositionOrBuilder() {
        if (positionBuilder_ != null) {
          return positionBuilder_.getMessageOrBuilder();
        } else {
          return position_;
        }
      }
      /**
       * optional .CMsgVector position = 6;
       */
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder> 
          getPositionFieldBuilder() {
        if (positionBuilder_ == null) {
          positionBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder>(
                  getPosition(),
                  getParentForChildren(),
                  isClean());
          position_ = null;
        }
        return positionBuilder_;
      }

      private boolean queue_ ;
      /**
       * optional bool queue = 7;
       */
      public boolean hasQueue() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      /**
       * optional bool queue = 7;
       */
      public boolean getQueue() {
        return queue_;
      }
      /**
       * optional bool queue = 7;
       */
      public Builder setQueue(boolean value) {
        bitField0_ |= 0x00000040;
        queue_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool queue = 7;
       */
      public Builder clearQueue() {
        bitField0_ = (bitField0_ & ~0x00000040);
        queue_ = false;
        onChanged();
        return this;
      }

      private int sequenceNumber_ ;
      /**
       * optional int32 sequence_number = 8;
       */
      public boolean hasSequenceNumber() {
        return ((bitField0_ & 0x00000080) == 0x00000080);
      }
      /**
       * optional int32 sequence_number = 8;
       */
      public int getSequenceNumber() {
        return sequenceNumber_;
      }
      /**
       * optional int32 sequence_number = 8;
       */
      public Builder setSequenceNumber(int value) {
        bitField0_ |= 0x00000080;
        sequenceNumber_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 sequence_number = 8;
       */
      public Builder clearSequenceNumber() {
        bitField0_ = (bitField0_ & ~0x00000080);
        sequenceNumber_ = 0;
        onChanged();
        return this;
      }

      private int flags_ ;
      /**
       * optional uint32 flags = 9;
       */
      public boolean hasFlags() {
        return ((bitField0_ & 0x00000100) == 0x00000100);
      }
      /**
       * optional uint32 flags = 9;
       */
      public int getFlags() {
        return flags_;
      }
      /**
       * optional uint32 flags = 9;
       */
      public Builder setFlags(int value) {
        bitField0_ |= 0x00000100;
        flags_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 flags = 9;
       */
      public Builder clearFlags() {
        bitField0_ = (bitField0_ & ~0x00000100);
        flags_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_SpectatorPlayerUnitOrders)
    }

    static {
      defaultInstance = new CDOTAUserMsg_SpectatorPlayerUnitOrders(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_SpectatorPlayerUnitOrders)
  }

  public interface CDOTAUserMsg_NevermoreRequiemOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_NevermoreRequiem)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional int32 entity_handle = 1;
     */
    boolean hasEntityHandle();
    /**
     * optional int32 entity_handle = 1;
     */
    int getEntityHandle();

    /**
     * optional int32 lines = 2;
     */
    boolean hasLines();
    /**
     * optional int32 lines = 2;
     */
    int getLines();

    /**
     * optional .CMsgVector origin = 3;
     */
    boolean hasOrigin();
    /**
     * optional .CMsgVector origin = 3;
     */
    skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector getOrigin();
    /**
     * optional .CMsgVector origin = 3;
     */
    skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder getOriginOrBuilder();

    /**
     * optional bool reverse = 4;
     */
    boolean hasReverse();
    /**
     * optional bool reverse = 4;
     */
    boolean getReverse();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_NevermoreRequiem}
   */
  public static final class CDOTAUserMsg_NevermoreRequiem extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_NevermoreRequiem)
      CDOTAUserMsg_NevermoreRequiemOrBuilder {
    // Use CDOTAUserMsg_NevermoreRequiem.newBuilder() to construct.
    private CDOTAUserMsg_NevermoreRequiem(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_NevermoreRequiem(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_NevermoreRequiem defaultInstance;
    public static CDOTAUserMsg_NevermoreRequiem getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_NevermoreRequiem getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_NevermoreRequiem(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              entityHandle_ = input.readInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              lines_ = input.readInt32();
              break;
            }
            case 26: {
              skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder subBuilder = null;
              if (((bitField0_ & 0x00000004) == 0x00000004)) {
                subBuilder = origin_.toBuilder();
              }
              origin_ = input.readMessage(skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(origin_);
                origin_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000004;
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              reverse_ = input.readBool();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_NevermoreRequiem_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_NevermoreRequiem_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_NevermoreRequiem.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_NevermoreRequiem.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_NevermoreRequiem parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_NevermoreRequiem(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int ENTITY_HANDLE_FIELD_NUMBER = 1;
    private int entityHandle_;
    /**
     * optional int32 entity_handle = 1;
     */
    public boolean hasEntityHandle() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 entity_handle = 1;
     */
    public int getEntityHandle() {
      return entityHandle_;
    }

    public static final int LINES_FIELD_NUMBER = 2;
    private int lines_;
    /**
     * optional int32 lines = 2;
     */
    public boolean hasLines() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional int32 lines = 2;
     */
    public int getLines() {
      return lines_;
    }

    public static final int ORIGIN_FIELD_NUMBER = 3;
    private skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector origin_;
    /**
     * optional .CMsgVector origin = 3;
     */
    public boolean hasOrigin() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional .CMsgVector origin = 3;
     */
    public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector getOrigin() {
      return origin_;
    }
    /**
     * optional .CMsgVector origin = 3;
     */
    public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder getOriginOrBuilder() {
      return origin_;
    }

    public static final int REVERSE_FIELD_NUMBER = 4;
    private boolean reverse_;
    /**
     * optional bool reverse = 4;
     */
    public boolean hasReverse() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional bool reverse = 4;
     */
    public boolean getReverse() {
      return reverse_;
    }

    private void initFields() {
      entityHandle_ = 0;
      lines_ = 0;
      origin_ = skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.getDefaultInstance();
      reverse_ = false;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, entityHandle_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, lines_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeMessage(3, origin_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeBool(4, reverse_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, entityHandle_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, lines_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, origin_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(4, reverse_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_NevermoreRequiem parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_NevermoreRequiem parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_NevermoreRequiem parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_NevermoreRequiem parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_NevermoreRequiem parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_NevermoreRequiem parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_NevermoreRequiem parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_NevermoreRequiem parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_NevermoreRequiem parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_NevermoreRequiem parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_NevermoreRequiem prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_NevermoreRequiem}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_NevermoreRequiem)
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_NevermoreRequiemOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_NevermoreRequiem_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_NevermoreRequiem_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_NevermoreRequiem.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_NevermoreRequiem.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_NevermoreRequiem.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getOriginFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        entityHandle_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        lines_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        if (originBuilder_ == null) {
          origin_ = skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.getDefaultInstance();
        } else {
          originBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        reverse_ = false;
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_NevermoreRequiem_descriptor;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_NevermoreRequiem getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_NevermoreRequiem.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_NevermoreRequiem build() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_NevermoreRequiem result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_NevermoreRequiem buildPartial() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_NevermoreRequiem result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_NevermoreRequiem(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.entityHandle_ = entityHandle_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.lines_ = lines_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        if (originBuilder_ == null) {
          result.origin_ = origin_;
        } else {
          result.origin_ = originBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.reverse_ = reverse_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_NevermoreRequiem) {
          return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_NevermoreRequiem)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_NevermoreRequiem other) {
        if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_NevermoreRequiem.getDefaultInstance()) return this;
        if (other.hasEntityHandle()) {
          setEntityHandle(other.getEntityHandle());
        }
        if (other.hasLines()) {
          setLines(other.getLines());
        }
        if (other.hasOrigin()) {
          mergeOrigin(other.getOrigin());
        }
        if (other.hasReverse()) {
          setReverse(other.getReverse());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_NevermoreRequiem parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_NevermoreRequiem) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int entityHandle_ ;
      /**
       * optional int32 entity_handle = 1;
       */
      public boolean hasEntityHandle() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 entity_handle = 1;
       */
      public int getEntityHandle() {
        return entityHandle_;
      }
      /**
       * optional int32 entity_handle = 1;
       */
      public Builder setEntityHandle(int value) {
        bitField0_ |= 0x00000001;
        entityHandle_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 entity_handle = 1;
       */
      public Builder clearEntityHandle() {
        bitField0_ = (bitField0_ & ~0x00000001);
        entityHandle_ = 0;
        onChanged();
        return this;
      }

      private int lines_ ;
      /**
       * optional int32 lines = 2;
       */
      public boolean hasLines() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional int32 lines = 2;
       */
      public int getLines() {
        return lines_;
      }
      /**
       * optional int32 lines = 2;
       */
      public Builder setLines(int value) {
        bitField0_ |= 0x00000002;
        lines_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 lines = 2;
       */
      public Builder clearLines() {
        bitField0_ = (bitField0_ & ~0x00000002);
        lines_ = 0;
        onChanged();
        return this;
      }

      private skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector origin_ = skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder> originBuilder_;
      /**
       * optional .CMsgVector origin = 3;
       */
      public boolean hasOrigin() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional .CMsgVector origin = 3;
       */
      public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector getOrigin() {
        if (originBuilder_ == null) {
          return origin_;
        } else {
          return originBuilder_.getMessage();
        }
      }
      /**
       * optional .CMsgVector origin = 3;
       */
      public Builder setOrigin(skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector value) {
        if (originBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          origin_ = value;
          onChanged();
        } else {
          originBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * optional .CMsgVector origin = 3;
       */
      public Builder setOrigin(
          skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder builderForValue) {
        if (originBuilder_ == null) {
          origin_ = builderForValue.build();
          onChanged();
        } else {
          originBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * optional .CMsgVector origin = 3;
       */
      public Builder mergeOrigin(skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector value) {
        if (originBuilder_ == null) {
          if (((bitField0_ & 0x00000004) == 0x00000004) &&
              origin_ != skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.getDefaultInstance()) {
            origin_ =
              skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.newBuilder(origin_).mergeFrom(value).buildPartial();
          } else {
            origin_ = value;
          }
          onChanged();
        } else {
          originBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * optional .CMsgVector origin = 3;
       */
      public Builder clearOrigin() {
        if (originBuilder_ == null) {
          origin_ = skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.getDefaultInstance();
          onChanged();
        } else {
          originBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }
      /**
       * optional .CMsgVector origin = 3;
       */
      public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder getOriginBuilder() {
        bitField0_ |= 0x00000004;
        onChanged();
        return getOriginFieldBuilder().getBuilder();
      }
      /**
       * optional .CMsgVector origin = 3;
       */
      public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder getOriginOrBuilder() {
        if (originBuilder_ != null) {
          return originBuilder_.getMessageOrBuilder();
        } else {
          return origin_;
        }
      }
      /**
       * optional .CMsgVector origin = 3;
       */
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder> 
          getOriginFieldBuilder() {
        if (originBuilder_ == null) {
          originBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder>(
                  getOrigin(),
                  getParentForChildren(),
                  isClean());
          origin_ = null;
        }
        return originBuilder_;
      }

      private boolean reverse_ ;
      /**
       * optional bool reverse = 4;
       */
      public boolean hasReverse() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional bool reverse = 4;
       */
      public boolean getReverse() {
        return reverse_;
      }
      /**
       * optional bool reverse = 4;
       */
      public Builder setReverse(boolean value) {
        bitField0_ |= 0x00000008;
        reverse_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool reverse = 4;
       */
      public Builder clearReverse() {
        bitField0_ = (bitField0_ & ~0x00000008);
        reverse_ = false;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_NevermoreRequiem)
    }

    static {
      defaultInstance = new CDOTAUserMsg_NevermoreRequiem(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_NevermoreRequiem)
  }

  public interface CDOTAUserMsg_HudErrorOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_HudError)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional int32 order_id = 1;
     */
    boolean hasOrderId();
    /**
     * optional int32 order_id = 1;
     */
    int getOrderId();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_HudError}
   */
  public static final class CDOTAUserMsg_HudError extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_HudError)
      CDOTAUserMsg_HudErrorOrBuilder {
    // Use CDOTAUserMsg_HudError.newBuilder() to construct.
    private CDOTAUserMsg_HudError(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_HudError(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_HudError defaultInstance;
    public static CDOTAUserMsg_HudError getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_HudError getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_HudError(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              orderId_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_HudError_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_HudError_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HudError.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HudError.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_HudError parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_HudError(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int ORDER_ID_FIELD_NUMBER = 1;
    private int orderId_;
    /**
     * optional int32 order_id = 1;
     */
    public boolean hasOrderId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 order_id = 1;
     */
    public int getOrderId() {
      return orderId_;
    }

    private void initFields() {
      orderId_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, orderId_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, orderId_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HudError parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HudError parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HudError parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HudError parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HudError parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HudError parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HudError parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HudError parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HudError parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HudError parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HudError prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_HudError}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_HudError)
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HudErrorOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_HudError_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_HudError_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HudError.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HudError.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HudError.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        orderId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_HudError_descriptor;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HudError getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HudError.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HudError build() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HudError result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HudError buildPartial() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HudError result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HudError(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.orderId_ = orderId_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HudError) {
          return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HudError)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HudError other) {
        if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HudError.getDefaultInstance()) return this;
        if (other.hasOrderId()) {
          setOrderId(other.getOrderId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HudError parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HudError) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int orderId_ ;
      /**
       * optional int32 order_id = 1;
       */
      public boolean hasOrderId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 order_id = 1;
       */
      public int getOrderId() {
        return orderId_;
      }
      /**
       * optional int32 order_id = 1;
       */
      public Builder setOrderId(int value) {
        bitField0_ |= 0x00000001;
        orderId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 order_id = 1;
       */
      public Builder clearOrderId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        orderId_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_HudError)
    }

    static {
      defaultInstance = new CDOTAUserMsg_HudError(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_HudError)
  }

  public interface CDOTAUserMsg_SharedCooldownOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_SharedCooldown)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional int32 entindex = 1;
     */
    boolean hasEntindex();
    /**
     * optional int32 entindex = 1;
     */
    int getEntindex();

    /**
     * optional string name = 2;
     */
    boolean hasName();
    /**
     * optional string name = 2;
     */
    java.lang.String getName();
    /**
     * optional string name = 2;
     */
    com.google.protobuf.ByteString
        getNameBytes();

    /**
     * optional float cooldown = 3;
     */
    boolean hasCooldown();
    /**
     * optional float cooldown = 3;
     */
    float getCooldown();

    /**
     * optional int32 name_index = 4;
     */
    boolean hasNameIndex();
    /**
     * optional int32 name_index = 4;
     */
    int getNameIndex();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_SharedCooldown}
   */
  public static final class CDOTAUserMsg_SharedCooldown extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_SharedCooldown)
      CDOTAUserMsg_SharedCooldownOrBuilder {
    // Use CDOTAUserMsg_SharedCooldown.newBuilder() to construct.
    private CDOTAUserMsg_SharedCooldown(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_SharedCooldown(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_SharedCooldown defaultInstance;
    public static CDOTAUserMsg_SharedCooldown getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_SharedCooldown getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_SharedCooldown(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              entindex_ = input.readInt32();
              break;
            }
            case 18: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000002;
              name_ = bs;
              break;
            }
            case 29: {
              bitField0_ |= 0x00000004;
              cooldown_ = input.readFloat();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              nameIndex_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_SharedCooldown_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_SharedCooldown_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SharedCooldown.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SharedCooldown.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_SharedCooldown parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_SharedCooldown(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int ENTINDEX_FIELD_NUMBER = 1;
    private int entindex_;
    /**
     * optional int32 entindex = 1;
     */
    public boolean hasEntindex() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 entindex = 1;
     */
    public int getEntindex() {
      return entindex_;
    }

    public static final int NAME_FIELD_NUMBER = 2;
    private java.lang.Object name_;
    /**
     * optional string name = 2;
     */
    public boolean hasName() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional string name = 2;
     */
    public java.lang.String getName() {
      java.lang.Object ref = name_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          name_ = s;
        }
        return s;
      }
    }
    /**
     * optional string name = 2;
     */
    public com.google.protobuf.ByteString
        getNameBytes() {
      java.lang.Object ref = name_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        name_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int COOLDOWN_FIELD_NUMBER = 3;
    private float cooldown_;
    /**
     * optional float cooldown = 3;
     */
    public boolean hasCooldown() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional float cooldown = 3;
     */
    public float getCooldown() {
      return cooldown_;
    }

    public static final int NAME_INDEX_FIELD_NUMBER = 4;
    private int nameIndex_;
    /**
     * optional int32 name_index = 4;
     */
    public boolean hasNameIndex() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional int32 name_index = 4;
     */
    public int getNameIndex() {
      return nameIndex_;
    }

    private void initFields() {
      entindex_ = 0;
      name_ = "";
      cooldown_ = 0F;
      nameIndex_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, entindex_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBytes(2, getNameBytes());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeFloat(3, cooldown_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeInt32(4, nameIndex_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, entindex_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, getNameBytes());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(3, cooldown_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, nameIndex_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SharedCooldown parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SharedCooldown parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SharedCooldown parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SharedCooldown parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SharedCooldown parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SharedCooldown parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SharedCooldown parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SharedCooldown parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SharedCooldown parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SharedCooldown parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SharedCooldown prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_SharedCooldown}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_SharedCooldown)
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SharedCooldownOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_SharedCooldown_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_SharedCooldown_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SharedCooldown.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SharedCooldown.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SharedCooldown.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        entindex_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        name_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        cooldown_ = 0F;
        bitField0_ = (bitField0_ & ~0x00000004);
        nameIndex_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_SharedCooldown_descriptor;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SharedCooldown getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SharedCooldown.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SharedCooldown build() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SharedCooldown result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SharedCooldown buildPartial() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SharedCooldown result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SharedCooldown(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.entindex_ = entindex_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.name_ = name_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.cooldown_ = cooldown_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.nameIndex_ = nameIndex_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SharedCooldown) {
          return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SharedCooldown)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SharedCooldown other) {
        if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SharedCooldown.getDefaultInstance()) return this;
        if (other.hasEntindex()) {
          setEntindex(other.getEntindex());
        }
        if (other.hasName()) {
          bitField0_ |= 0x00000002;
          name_ = other.name_;
          onChanged();
        }
        if (other.hasCooldown()) {
          setCooldown(other.getCooldown());
        }
        if (other.hasNameIndex()) {
          setNameIndex(other.getNameIndex());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SharedCooldown parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SharedCooldown) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int entindex_ ;
      /**
       * optional int32 entindex = 1;
       */
      public boolean hasEntindex() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 entindex = 1;
       */
      public int getEntindex() {
        return entindex_;
      }
      /**
       * optional int32 entindex = 1;
       */
      public Builder setEntindex(int value) {
        bitField0_ |= 0x00000001;
        entindex_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 entindex = 1;
       */
      public Builder clearEntindex() {
        bitField0_ = (bitField0_ & ~0x00000001);
        entindex_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object name_ = "";
      /**
       * optional string name = 2;
       */
      public boolean hasName() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional string name = 2;
       */
      public java.lang.String getName() {
        java.lang.Object ref = name_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            name_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string name = 2;
       */
      public com.google.protobuf.ByteString
          getNameBytes() {
        java.lang.Object ref = name_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          name_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string name = 2;
       */
      public Builder setName(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        name_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string name = 2;
       */
      public Builder clearName() {
        bitField0_ = (bitField0_ & ~0x00000002);
        name_ = getDefaultInstance().getName();
        onChanged();
        return this;
      }
      /**
       * optional string name = 2;
       */
      public Builder setNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        name_ = value;
        onChanged();
        return this;
      }

      private float cooldown_ ;
      /**
       * optional float cooldown = 3;
       */
      public boolean hasCooldown() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional float cooldown = 3;
       */
      public float getCooldown() {
        return cooldown_;
      }
      /**
       * optional float cooldown = 3;
       */
      public Builder setCooldown(float value) {
        bitField0_ |= 0x00000004;
        cooldown_ = value;
        onChanged();
        return this;
      }
      /**
       * optional float cooldown = 3;
       */
      public Builder clearCooldown() {
        bitField0_ = (bitField0_ & ~0x00000004);
        cooldown_ = 0F;
        onChanged();
        return this;
      }

      private int nameIndex_ ;
      /**
       * optional int32 name_index = 4;
       */
      public boolean hasNameIndex() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional int32 name_index = 4;
       */
      public int getNameIndex() {
        return nameIndex_;
      }
      /**
       * optional int32 name_index = 4;
       */
      public Builder setNameIndex(int value) {
        bitField0_ |= 0x00000008;
        nameIndex_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 name_index = 4;
       */
      public Builder clearNameIndex() {
        bitField0_ = (bitField0_ & ~0x00000008);
        nameIndex_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_SharedCooldown)
    }

    static {
      defaultInstance = new CDOTAUserMsg_SharedCooldown(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_SharedCooldown)
  }

  public interface CDOTAUserMsg_HalloweenDropsOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_HalloweenDrops)
      com.google.protobuf.MessageOrBuilder {

    /**
     * repeated uint32 item_defs = 1;
     */
    java.util.List getItemDefsList();
    /**
     * repeated uint32 item_defs = 1;
     */
    int getItemDefsCount();
    /**
     * repeated uint32 item_defs = 1;
     */
    int getItemDefs(int index);

    /**
     * repeated uint32 player_ids = 2;
     */
    java.util.List getPlayerIdsList();
    /**
     * repeated uint32 player_ids = 2;
     */
    int getPlayerIdsCount();
    /**
     * repeated uint32 player_ids = 2;
     */
    int getPlayerIds(int index);

    /**
     * optional uint32 prize_list = 3;
     */
    boolean hasPrizeList();
    /**
     * optional uint32 prize_list = 3;
     */
    int getPrizeList();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_HalloweenDrops}
   */
  public static final class CDOTAUserMsg_HalloweenDrops extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_HalloweenDrops)
      CDOTAUserMsg_HalloweenDropsOrBuilder {
    // Use CDOTAUserMsg_HalloweenDrops.newBuilder() to construct.
    private CDOTAUserMsg_HalloweenDrops(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_HalloweenDrops(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_HalloweenDrops defaultInstance;
    public static CDOTAUserMsg_HalloweenDrops getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_HalloweenDrops getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_HalloweenDrops(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                itemDefs_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000001;
              }
              itemDefs_.add(input.readUInt32());
              break;
            }
            case 10: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001) && input.getBytesUntilLimit() > 0) {
                itemDefs_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000001;
              }
              while (input.getBytesUntilLimit() > 0) {
                itemDefs_.add(input.readUInt32());
              }
              input.popLimit(limit);
              break;
            }
            case 16: {
              if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                playerIds_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000002;
              }
              playerIds_.add(input.readUInt32());
              break;
            }
            case 18: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              if (!((mutable_bitField0_ & 0x00000002) == 0x00000002) && input.getBytesUntilLimit() > 0) {
                playerIds_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000002;
              }
              while (input.getBytesUntilLimit() > 0) {
                playerIds_.add(input.readUInt32());
              }
              input.popLimit(limit);
              break;
            }
            case 24: {
              bitField0_ |= 0x00000001;
              prizeList_ = input.readUInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
          itemDefs_ = java.util.Collections.unmodifiableList(itemDefs_);
        }
        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
          playerIds_ = java.util.Collections.unmodifiableList(playerIds_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_HalloweenDrops_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_HalloweenDrops_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HalloweenDrops.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HalloweenDrops.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_HalloweenDrops parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_HalloweenDrops(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int ITEM_DEFS_FIELD_NUMBER = 1;
    private java.util.List itemDefs_;
    /**
     * repeated uint32 item_defs = 1;
     */
    public java.util.List
        getItemDefsList() {
      return itemDefs_;
    }
    /**
     * repeated uint32 item_defs = 1;
     */
    public int getItemDefsCount() {
      return itemDefs_.size();
    }
    /**
     * repeated uint32 item_defs = 1;
     */
    public int getItemDefs(int index) {
      return itemDefs_.get(index);
    }

    public static final int PLAYER_IDS_FIELD_NUMBER = 2;
    private java.util.List playerIds_;
    /**
     * repeated uint32 player_ids = 2;
     */
    public java.util.List
        getPlayerIdsList() {
      return playerIds_;
    }
    /**
     * repeated uint32 player_ids = 2;
     */
    public int getPlayerIdsCount() {
      return playerIds_.size();
    }
    /**
     * repeated uint32 player_ids = 2;
     */
    public int getPlayerIds(int index) {
      return playerIds_.get(index);
    }

    public static final int PRIZE_LIST_FIELD_NUMBER = 3;
    private int prizeList_;
    /**
     * optional uint32 prize_list = 3;
     */
    public boolean hasPrizeList() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional uint32 prize_list = 3;
     */
    public int getPrizeList() {
      return prizeList_;
    }

    private void initFields() {
      itemDefs_ = java.util.Collections.emptyList();
      playerIds_ = java.util.Collections.emptyList();
      prizeList_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      for (int i = 0; i < itemDefs_.size(); i++) {
        output.writeUInt32(1, itemDefs_.get(i));
      }
      for (int i = 0; i < playerIds_.size(); i++) {
        output.writeUInt32(2, playerIds_.get(i));
      }
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(3, prizeList_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      {
        int dataSize = 0;
        for (int i = 0; i < itemDefs_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeUInt32SizeNoTag(itemDefs_.get(i));
        }
        size += dataSize;
        size += 1 * getItemDefsList().size();
      }
      {
        int dataSize = 0;
        for (int i = 0; i < playerIds_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeUInt32SizeNoTag(playerIds_.get(i));
        }
        size += dataSize;
        size += 1 * getPlayerIdsList().size();
      }
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, prizeList_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HalloweenDrops parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HalloweenDrops parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HalloweenDrops parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HalloweenDrops parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HalloweenDrops parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HalloweenDrops parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HalloweenDrops parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HalloweenDrops parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HalloweenDrops parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HalloweenDrops parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HalloweenDrops prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_HalloweenDrops}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_HalloweenDrops)
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HalloweenDropsOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_HalloweenDrops_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_HalloweenDrops_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HalloweenDrops.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HalloweenDrops.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HalloweenDrops.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        itemDefs_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000001);
        playerIds_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000002);
        prizeList_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_HalloweenDrops_descriptor;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HalloweenDrops getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HalloweenDrops.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HalloweenDrops build() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HalloweenDrops result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HalloweenDrops buildPartial() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HalloweenDrops result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HalloweenDrops(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          itemDefs_ = java.util.Collections.unmodifiableList(itemDefs_);
          bitField0_ = (bitField0_ & ~0x00000001);
        }
        result.itemDefs_ = itemDefs_;
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          playerIds_ = java.util.Collections.unmodifiableList(playerIds_);
          bitField0_ = (bitField0_ & ~0x00000002);
        }
        result.playerIds_ = playerIds_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000001;
        }
        result.prizeList_ = prizeList_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HalloweenDrops) {
          return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HalloweenDrops)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HalloweenDrops other) {
        if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HalloweenDrops.getDefaultInstance()) return this;
        if (!other.itemDefs_.isEmpty()) {
          if (itemDefs_.isEmpty()) {
            itemDefs_ = other.itemDefs_;
            bitField0_ = (bitField0_ & ~0x00000001);
          } else {
            ensureItemDefsIsMutable();
            itemDefs_.addAll(other.itemDefs_);
          }
          onChanged();
        }
        if (!other.playerIds_.isEmpty()) {
          if (playerIds_.isEmpty()) {
            playerIds_ = other.playerIds_;
            bitField0_ = (bitField0_ & ~0x00000002);
          } else {
            ensurePlayerIdsIsMutable();
            playerIds_.addAll(other.playerIds_);
          }
          onChanged();
        }
        if (other.hasPrizeList()) {
          setPrizeList(other.getPrizeList());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HalloweenDrops parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HalloweenDrops) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.util.List itemDefs_ = java.util.Collections.emptyList();
      private void ensureItemDefsIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          itemDefs_ = new java.util.ArrayList(itemDefs_);
          bitField0_ |= 0x00000001;
         }
      }
      /**
       * repeated uint32 item_defs = 1;
       */
      public java.util.List
          getItemDefsList() {
        return java.util.Collections.unmodifiableList(itemDefs_);
      }
      /**
       * repeated uint32 item_defs = 1;
       */
      public int getItemDefsCount() {
        return itemDefs_.size();
      }
      /**
       * repeated uint32 item_defs = 1;
       */
      public int getItemDefs(int index) {
        return itemDefs_.get(index);
      }
      /**
       * repeated uint32 item_defs = 1;
       */
      public Builder setItemDefs(
          int index, int value) {
        ensureItemDefsIsMutable();
        itemDefs_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * repeated uint32 item_defs = 1;
       */
      public Builder addItemDefs(int value) {
        ensureItemDefsIsMutable();
        itemDefs_.add(value);
        onChanged();
        return this;
      }
      /**
       * repeated uint32 item_defs = 1;
       */
      public Builder addAllItemDefs(
          java.lang.Iterable values) {
        ensureItemDefsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, itemDefs_);
        onChanged();
        return this;
      }
      /**
       * repeated uint32 item_defs = 1;
       */
      public Builder clearItemDefs() {
        itemDefs_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }

      private java.util.List playerIds_ = java.util.Collections.emptyList();
      private void ensurePlayerIdsIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          playerIds_ = new java.util.ArrayList(playerIds_);
          bitField0_ |= 0x00000002;
         }
      }
      /**
       * repeated uint32 player_ids = 2;
       */
      public java.util.List
          getPlayerIdsList() {
        return java.util.Collections.unmodifiableList(playerIds_);
      }
      /**
       * repeated uint32 player_ids = 2;
       */
      public int getPlayerIdsCount() {
        return playerIds_.size();
      }
      /**
       * repeated uint32 player_ids = 2;
       */
      public int getPlayerIds(int index) {
        return playerIds_.get(index);
      }
      /**
       * repeated uint32 player_ids = 2;
       */
      public Builder setPlayerIds(
          int index, int value) {
        ensurePlayerIdsIsMutable();
        playerIds_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * repeated uint32 player_ids = 2;
       */
      public Builder addPlayerIds(int value) {
        ensurePlayerIdsIsMutable();
        playerIds_.add(value);
        onChanged();
        return this;
      }
      /**
       * repeated uint32 player_ids = 2;
       */
      public Builder addAllPlayerIds(
          java.lang.Iterable values) {
        ensurePlayerIdsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, playerIds_);
        onChanged();
        return this;
      }
      /**
       * repeated uint32 player_ids = 2;
       */
      public Builder clearPlayerIds() {
        playerIds_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }

      private int prizeList_ ;
      /**
       * optional uint32 prize_list = 3;
       */
      public boolean hasPrizeList() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional uint32 prize_list = 3;
       */
      public int getPrizeList() {
        return prizeList_;
      }
      /**
       * optional uint32 prize_list = 3;
       */
      public Builder setPrizeList(int value) {
        bitField0_ |= 0x00000004;
        prizeList_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 prize_list = 3;
       */
      public Builder clearPrizeList() {
        bitField0_ = (bitField0_ & ~0x00000004);
        prizeList_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_HalloweenDrops)
    }

    static {
      defaultInstance = new CDOTAUserMsg_HalloweenDrops(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_HalloweenDrops)
  }

  public interface CDOTAUserMsg_PredictionResultOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_PredictionResult)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional uint32 account_id = 1;
     */
    boolean hasAccountId();
    /**
     * optional uint32 account_id = 1;
     */
    int getAccountId();

    /**
     * optional uint64 match_id = 2;
     */
    boolean hasMatchId();
    /**
     * optional uint64 match_id = 2;
     */
    long getMatchId();

    /**
     * optional bool correct = 3;
     */
    boolean hasCorrect();
    /**
     * optional bool correct = 3;
     */
    boolean getCorrect();

    /**
     * repeated .CDOTAUserMsg_PredictionResult.Prediction predictions = 4;
     */
    java.util.List 
        getPredictionsList();
    /**
     * repeated .CDOTAUserMsg_PredictionResult.Prediction predictions = 4;
     */
    skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PredictionResult.Prediction getPredictions(int index);
    /**
     * repeated .CDOTAUserMsg_PredictionResult.Prediction predictions = 4;
     */
    int getPredictionsCount();
    /**
     * repeated .CDOTAUserMsg_PredictionResult.Prediction predictions = 4;
     */
    java.util.List 
        getPredictionsOrBuilderList();
    /**
     * repeated .CDOTAUserMsg_PredictionResult.Prediction predictions = 4;
     */
    skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PredictionResult.PredictionOrBuilder getPredictionsOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_PredictionResult}
   */
  public static final class CDOTAUserMsg_PredictionResult extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_PredictionResult)
      CDOTAUserMsg_PredictionResultOrBuilder {
    // Use CDOTAUserMsg_PredictionResult.newBuilder() to construct.
    private CDOTAUserMsg_PredictionResult(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_PredictionResult(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_PredictionResult defaultInstance;
    public static CDOTAUserMsg_PredictionResult getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_PredictionResult getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_PredictionResult(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              accountId_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              matchId_ = input.readUInt64();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              correct_ = input.readBool();
              break;
            }
            case 34: {
              if (!((mutable_bitField0_ & 0x00000008) == 0x00000008)) {
                predictions_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000008;
              }
              predictions_.add(input.readMessage(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PredictionResult.Prediction.PARSER, extensionRegistry));
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000008) == 0x00000008)) {
          predictions_ = java.util.Collections.unmodifiableList(predictions_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_PredictionResult_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_PredictionResult_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PredictionResult.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PredictionResult.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_PredictionResult parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_PredictionResult(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    public interface PredictionOrBuilder extends
        // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_PredictionResult.Prediction)
        com.google.protobuf.MessageOrBuilder {

      /**
       * optional uint32 item_def = 1;
       */
      boolean hasItemDef();
      /**
       * optional uint32 item_def = 1;
       */
      int getItemDef();

      /**
       * optional uint32 num_correct = 2;
       */
      boolean hasNumCorrect();
      /**
       * optional uint32 num_correct = 2;
       */
      int getNumCorrect();

      /**
       * optional uint32 num_fails = 3;
       */
      boolean hasNumFails();
      /**
       * optional uint32 num_fails = 3;
       */
      int getNumFails();

      /**
       * optional .CDOTAUserMsg_PredictionResult.Prediction.EResult result = 4 [default = k_eResult_ItemGranted];
       */
      boolean hasResult();
      /**
       * optional .CDOTAUserMsg_PredictionResult.Prediction.EResult result = 4 [default = k_eResult_ItemGranted];
       */
      skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PredictionResult.Prediction.EResult getResult();

      /**
       * repeated uint32 granted_item_defs = 6;
       */
      java.util.List getGrantedItemDefsList();
      /**
       * repeated uint32 granted_item_defs = 6;
       */
      int getGrantedItemDefsCount();
      /**
       * repeated uint32 granted_item_defs = 6;
       */
      int getGrantedItemDefs(int index);
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_PredictionResult.Prediction}
     */
    public static final class Prediction extends
        com.google.protobuf.GeneratedMessage implements
        // @@protoc_insertion_point(message_implements:CDOTAUserMsg_PredictionResult.Prediction)
        PredictionOrBuilder {
      // Use Prediction.newBuilder() to construct.
      private Prediction(com.google.protobuf.GeneratedMessage.Builder builder) {
        super(builder);
        this.unknownFields = builder.getUnknownFields();
      }
      private Prediction(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

      private static final Prediction defaultInstance;
      public static Prediction getDefaultInstance() {
        return defaultInstance;
      }

      public Prediction getDefaultInstanceForType() {
        return defaultInstance;
      }

      private final com.google.protobuf.UnknownFieldSet unknownFields;
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
          getUnknownFields() {
        return this.unknownFields;
      }
      private Prediction(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        initFields();
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
              case 8: {
                bitField0_ |= 0x00000001;
                itemDef_ = input.readUInt32();
                break;
              }
              case 16: {
                bitField0_ |= 0x00000002;
                numCorrect_ = input.readUInt32();
                break;
              }
              case 24: {
                bitField0_ |= 0x00000004;
                numFails_ = input.readUInt32();
                break;
              }
              case 32: {
                int rawValue = input.readEnum();
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PredictionResult.Prediction.EResult value = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PredictionResult.Prediction.EResult.valueOf(rawValue);
                if (value == null) {
                  unknownFields.mergeVarintField(4, rawValue);
                } else {
                  bitField0_ |= 0x00000008;
                  result_ = value;
                }
                break;
              }
              case 48: {
                if (!((mutable_bitField0_ & 0x00000010) == 0x00000010)) {
                  grantedItemDefs_ = new java.util.ArrayList();
                  mutable_bitField0_ |= 0x00000010;
                }
                grantedItemDefs_.add(input.readUInt32());
                break;
              }
              case 50: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                if (!((mutable_bitField0_ & 0x00000010) == 0x00000010) && input.getBytesUntilLimit() > 0) {
                  grantedItemDefs_ = new java.util.ArrayList();
                  mutable_bitField0_ |= 0x00000010;
                }
                while (input.getBytesUntilLimit() > 0) {
                  grantedItemDefs_.add(input.readUInt32());
                }
                input.popLimit(limit);
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e.getMessage()).setUnfinishedMessage(this);
        } finally {
          if (((mutable_bitField0_ & 0x00000010) == 0x00000010)) {
            grantedItemDefs_ = java.util.Collections.unmodifiableList(grantedItemDefs_);
          }
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_PredictionResult_Prediction_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_PredictionResult_Prediction_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PredictionResult.Prediction.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PredictionResult.Prediction.Builder.class);
      }

      public static com.google.protobuf.Parser PARSER =
          new com.google.protobuf.AbstractParser() {
        public Prediction parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new Prediction(input, extensionRegistry);
        }
      };

      @java.lang.Override
      public com.google.protobuf.Parser getParserForType() {
        return PARSER;
      }

      /**
       * Protobuf enum {@code CDOTAUserMsg_PredictionResult.Prediction.EResult}
       */
      public enum EResult
          implements com.google.protobuf.ProtocolMessageEnum {
        /**
         * k_eResult_ItemGranted = 1;
         */
        k_eResult_ItemGranted(0, 1),
        /**
         * k_eResult_Destroyed = 2;
         */
        k_eResult_Destroyed(1, 2),
        ;

        /**
         * k_eResult_ItemGranted = 1;
         */
        public static final int k_eResult_ItemGranted_VALUE = 1;
        /**
         * k_eResult_Destroyed = 2;
         */
        public static final int k_eResult_Destroyed_VALUE = 2;


        public final int getNumber() { return value; }

        public static EResult valueOf(int value) {
          switch (value) {
            case 1: return k_eResult_ItemGranted;
            case 2: return k_eResult_Destroyed;
            default: return null;
          }
        }

        public static com.google.protobuf.Internal.EnumLiteMap
            internalGetValueMap() {
          return internalValueMap;
        }
        private static com.google.protobuf.Internal.EnumLiteMap
            internalValueMap =
              new com.google.protobuf.Internal.EnumLiteMap() {
                public EResult findValueByNumber(int number) {
                  return EResult.valueOf(number);
                }
              };

        public final com.google.protobuf.Descriptors.EnumValueDescriptor
            getValueDescriptor() {
          return getDescriptor().getValues().get(index);
        }
        public final com.google.protobuf.Descriptors.EnumDescriptor
            getDescriptorForType() {
          return getDescriptor();
        }
        public static final com.google.protobuf.Descriptors.EnumDescriptor
            getDescriptor() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PredictionResult.Prediction.getDescriptor().getEnumTypes().get(0);
        }

        private static final EResult[] VALUES = values();

        public static EResult valueOf(
            com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
          if (desc.getType() != getDescriptor()) {
            throw new java.lang.IllegalArgumentException(
              "EnumValueDescriptor is not for this type.");
          }
          return VALUES[desc.getIndex()];
        }

        private final int index;
        private final int value;

        private EResult(int index, int value) {
          this.index = index;
          this.value = value;
        }

        // @@protoc_insertion_point(enum_scope:CDOTAUserMsg_PredictionResult.Prediction.EResult)
      }

      private int bitField0_;
      public static final int ITEM_DEF_FIELD_NUMBER = 1;
      private int itemDef_;
      /**
       * optional uint32 item_def = 1;
       */
      public boolean hasItemDef() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional uint32 item_def = 1;
       */
      public int getItemDef() {
        return itemDef_;
      }

      public static final int NUM_CORRECT_FIELD_NUMBER = 2;
      private int numCorrect_;
      /**
       * optional uint32 num_correct = 2;
       */
      public boolean hasNumCorrect() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional uint32 num_correct = 2;
       */
      public int getNumCorrect() {
        return numCorrect_;
      }

      public static final int NUM_FAILS_FIELD_NUMBER = 3;
      private int numFails_;
      /**
       * optional uint32 num_fails = 3;
       */
      public boolean hasNumFails() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional uint32 num_fails = 3;
       */
      public int getNumFails() {
        return numFails_;
      }

      public static final int RESULT_FIELD_NUMBER = 4;
      private skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PredictionResult.Prediction.EResult result_;
      /**
       * optional .CDOTAUserMsg_PredictionResult.Prediction.EResult result = 4 [default = k_eResult_ItemGranted];
       */
      public boolean hasResult() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional .CDOTAUserMsg_PredictionResult.Prediction.EResult result = 4 [default = k_eResult_ItemGranted];
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PredictionResult.Prediction.EResult getResult() {
        return result_;
      }

      public static final int GRANTED_ITEM_DEFS_FIELD_NUMBER = 6;
      private java.util.List grantedItemDefs_;
      /**
       * repeated uint32 granted_item_defs = 6;
       */
      public java.util.List
          getGrantedItemDefsList() {
        return grantedItemDefs_;
      }
      /**
       * repeated uint32 granted_item_defs = 6;
       */
      public int getGrantedItemDefsCount() {
        return grantedItemDefs_.size();
      }
      /**
       * repeated uint32 granted_item_defs = 6;
       */
      public int getGrantedItemDefs(int index) {
        return grantedItemDefs_.get(index);
      }

      private void initFields() {
        itemDef_ = 0;
        numCorrect_ = 0;
        numFails_ = 0;
        result_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PredictionResult.Prediction.EResult.k_eResult_ItemGranted;
        grantedItemDefs_ = java.util.Collections.emptyList();
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeUInt32(1, itemDef_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeUInt32(2, numCorrect_);
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          output.writeUInt32(3, numFails_);
        }
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          output.writeEnum(4, result_.getNumber());
        }
        for (int i = 0; i < grantedItemDefs_.size(); i++) {
          output.writeUInt32(6, grantedItemDefs_.get(i));
        }
        getUnknownFields().writeTo(output);
      }

      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;

        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeUInt32Size(1, itemDef_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeUInt32Size(2, numCorrect_);
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          size += com.google.protobuf.CodedOutputStream
            .computeUInt32Size(3, numFails_);
        }
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          size += com.google.protobuf.CodedOutputStream
            .computeEnumSize(4, result_.getNumber());
        }
        {
          int dataSize = 0;
          for (int i = 0; i < grantedItemDefs_.size(); i++) {
            dataSize += com.google.protobuf.CodedOutputStream
              .computeUInt32SizeNoTag(grantedItemDefs_.get(i));
          }
          size += dataSize;
          size += 1 * getGrantedItemDefsList().size();
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.Object writeReplace()
          throws java.io.ObjectStreamException {
        return super.writeReplace();
      }

      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PredictionResult.Prediction parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PredictionResult.Prediction parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PredictionResult.Prediction parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PredictionResult.Prediction parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PredictionResult.Prediction parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PredictionResult.Prediction parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PredictionResult.Prediction parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PredictionResult.Prediction parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PredictionResult.Prediction parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PredictionResult.Prediction parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }

      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PredictionResult.Prediction prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code CDOTAUserMsg_PredictionResult.Prediction}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder implements
          // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_PredictionResult.Prediction)
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PredictionResult.PredictionOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_PredictionResult_Prediction_descriptor;
        }

        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_PredictionResult_Prediction_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PredictionResult.Prediction.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PredictionResult.Prediction.Builder.class);
        }

        // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PredictionResult.Prediction.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          }
        }
        private static Builder create() {
          return new Builder();
        }

        public Builder clear() {
          super.clear();
          itemDef_ = 0;
          bitField0_ = (bitField0_ & ~0x00000001);
          numCorrect_ = 0;
          bitField0_ = (bitField0_ & ~0x00000002);
          numFails_ = 0;
          bitField0_ = (bitField0_ & ~0x00000004);
          result_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PredictionResult.Prediction.EResult.k_eResult_ItemGranted;
          bitField0_ = (bitField0_ & ~0x00000008);
          grantedItemDefs_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000010);
          return this;
        }

        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }

        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_PredictionResult_Prediction_descriptor;
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PredictionResult.Prediction getDefaultInstanceForType() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PredictionResult.Prediction.getDefaultInstance();
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PredictionResult.Prediction build() {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PredictionResult.Prediction result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PredictionResult.Prediction buildPartial() {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PredictionResult.Prediction result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PredictionResult.Prediction(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.itemDef_ = itemDef_;
          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
            to_bitField0_ |= 0x00000002;
          }
          result.numCorrect_ = numCorrect_;
          if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
            to_bitField0_ |= 0x00000004;
          }
          result.numFails_ = numFails_;
          if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
            to_bitField0_ |= 0x00000008;
          }
          result.result_ = result_;
          if (((bitField0_ & 0x00000010) == 0x00000010)) {
            grantedItemDefs_ = java.util.Collections.unmodifiableList(grantedItemDefs_);
            bitField0_ = (bitField0_ & ~0x00000010);
          }
          result.grantedItemDefs_ = grantedItemDefs_;
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }

        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PredictionResult.Prediction) {
            return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PredictionResult.Prediction)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PredictionResult.Prediction other) {
          if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PredictionResult.Prediction.getDefaultInstance()) return this;
          if (other.hasItemDef()) {
            setItemDef(other.getItemDef());
          }
          if (other.hasNumCorrect()) {
            setNumCorrect(other.getNumCorrect());
          }
          if (other.hasNumFails()) {
            setNumFails(other.getNumFails());
          }
          if (other.hasResult()) {
            setResult(other.getResult());
          }
          if (!other.grantedItemDefs_.isEmpty()) {
            if (grantedItemDefs_.isEmpty()) {
              grantedItemDefs_ = other.grantedItemDefs_;
              bitField0_ = (bitField0_ & ~0x00000010);
            } else {
              ensureGrantedItemDefsIsMutable();
              grantedItemDefs_.addAll(other.grantedItemDefs_);
            }
            onChanged();
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }

        public final boolean isInitialized() {
          return true;
        }

        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PredictionResult.Prediction parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PredictionResult.Prediction) e.getUnfinishedMessage();
            throw e;
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        private int itemDef_ ;
        /**
         * optional uint32 item_def = 1;
         */
        public boolean hasItemDef() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * optional uint32 item_def = 1;
         */
        public int getItemDef() {
          return itemDef_;
        }
        /**
         * optional uint32 item_def = 1;
         */
        public Builder setItemDef(int value) {
          bitField0_ |= 0x00000001;
          itemDef_ = value;
          onChanged();
          return this;
        }
        /**
         * optional uint32 item_def = 1;
         */
        public Builder clearItemDef() {
          bitField0_ = (bitField0_ & ~0x00000001);
          itemDef_ = 0;
          onChanged();
          return this;
        }

        private int numCorrect_ ;
        /**
         * optional uint32 num_correct = 2;
         */
        public boolean hasNumCorrect() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        /**
         * optional uint32 num_correct = 2;
         */
        public int getNumCorrect() {
          return numCorrect_;
        }
        /**
         * optional uint32 num_correct = 2;
         */
        public Builder setNumCorrect(int value) {
          bitField0_ |= 0x00000002;
          numCorrect_ = value;
          onChanged();
          return this;
        }
        /**
         * optional uint32 num_correct = 2;
         */
        public Builder clearNumCorrect() {
          bitField0_ = (bitField0_ & ~0x00000002);
          numCorrect_ = 0;
          onChanged();
          return this;
        }

        private int numFails_ ;
        /**
         * optional uint32 num_fails = 3;
         */
        public boolean hasNumFails() {
          return ((bitField0_ & 0x00000004) == 0x00000004);
        }
        /**
         * optional uint32 num_fails = 3;
         */
        public int getNumFails() {
          return numFails_;
        }
        /**
         * optional uint32 num_fails = 3;
         */
        public Builder setNumFails(int value) {
          bitField0_ |= 0x00000004;
          numFails_ = value;
          onChanged();
          return this;
        }
        /**
         * optional uint32 num_fails = 3;
         */
        public Builder clearNumFails() {
          bitField0_ = (bitField0_ & ~0x00000004);
          numFails_ = 0;
          onChanged();
          return this;
        }

        private skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PredictionResult.Prediction.EResult result_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PredictionResult.Prediction.EResult.k_eResult_ItemGranted;
        /**
         * optional .CDOTAUserMsg_PredictionResult.Prediction.EResult result = 4 [default = k_eResult_ItemGranted];
         */
        public boolean hasResult() {
          return ((bitField0_ & 0x00000008) == 0x00000008);
        }
        /**
         * optional .CDOTAUserMsg_PredictionResult.Prediction.EResult result = 4 [default = k_eResult_ItemGranted];
         */
        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PredictionResult.Prediction.EResult getResult() {
          return result_;
        }
        /**
         * optional .CDOTAUserMsg_PredictionResult.Prediction.EResult result = 4 [default = k_eResult_ItemGranted];
         */
        public Builder setResult(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PredictionResult.Prediction.EResult value) {
          if (value == null) {
            throw new NullPointerException();
          }
          bitField0_ |= 0x00000008;
          result_ = value;
          onChanged();
          return this;
        }
        /**
         * optional .CDOTAUserMsg_PredictionResult.Prediction.EResult result = 4 [default = k_eResult_ItemGranted];
         */
        public Builder clearResult() {
          bitField0_ = (bitField0_ & ~0x00000008);
          result_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PredictionResult.Prediction.EResult.k_eResult_ItemGranted;
          onChanged();
          return this;
        }

        private java.util.List grantedItemDefs_ = java.util.Collections.emptyList();
        private void ensureGrantedItemDefsIsMutable() {
          if (!((bitField0_ & 0x00000010) == 0x00000010)) {
            grantedItemDefs_ = new java.util.ArrayList(grantedItemDefs_);
            bitField0_ |= 0x00000010;
           }
        }
        /**
         * repeated uint32 granted_item_defs = 6;
         */
        public java.util.List
            getGrantedItemDefsList() {
          return java.util.Collections.unmodifiableList(grantedItemDefs_);
        }
        /**
         * repeated uint32 granted_item_defs = 6;
         */
        public int getGrantedItemDefsCount() {
          return grantedItemDefs_.size();
        }
        /**
         * repeated uint32 granted_item_defs = 6;
         */
        public int getGrantedItemDefs(int index) {
          return grantedItemDefs_.get(index);
        }
        /**
         * repeated uint32 granted_item_defs = 6;
         */
        public Builder setGrantedItemDefs(
            int index, int value) {
          ensureGrantedItemDefsIsMutable();
          grantedItemDefs_.set(index, value);
          onChanged();
          return this;
        }
        /**
         * repeated uint32 granted_item_defs = 6;
         */
        public Builder addGrantedItemDefs(int value) {
          ensureGrantedItemDefsIsMutable();
          grantedItemDefs_.add(value);
          onChanged();
          return this;
        }
        /**
         * repeated uint32 granted_item_defs = 6;
         */
        public Builder addAllGrantedItemDefs(
            java.lang.Iterable values) {
          ensureGrantedItemDefsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, grantedItemDefs_);
          onChanged();
          return this;
        }
        /**
         * repeated uint32 granted_item_defs = 6;
         */
        public Builder clearGrantedItemDefs() {
          grantedItemDefs_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000010);
          onChanged();
          return this;
        }

        // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_PredictionResult.Prediction)
      }

      static {
        defaultInstance = new Prediction(true);
        defaultInstance.initFields();
      }

      // @@protoc_insertion_point(class_scope:CDOTAUserMsg_PredictionResult.Prediction)
    }

    private int bitField0_;
    public static final int ACCOUNT_ID_FIELD_NUMBER = 1;
    private int accountId_;
    /**
     * optional uint32 account_id = 1;
     */
    public boolean hasAccountId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional uint32 account_id = 1;
     */
    public int getAccountId() {
      return accountId_;
    }

    public static final int MATCH_ID_FIELD_NUMBER = 2;
    private long matchId_;
    /**
     * optional uint64 match_id = 2;
     */
    public boolean hasMatchId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional uint64 match_id = 2;
     */
    public long getMatchId() {
      return matchId_;
    }

    public static final int CORRECT_FIELD_NUMBER = 3;
    private boolean correct_;
    /**
     * optional bool correct = 3;
     */
    public boolean hasCorrect() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional bool correct = 3;
     */
    public boolean getCorrect() {
      return correct_;
    }

    public static final int PREDICTIONS_FIELD_NUMBER = 4;
    private java.util.List predictions_;
    /**
     * repeated .CDOTAUserMsg_PredictionResult.Prediction predictions = 4;
     */
    public java.util.List getPredictionsList() {
      return predictions_;
    }
    /**
     * repeated .CDOTAUserMsg_PredictionResult.Prediction predictions = 4;
     */
    public java.util.List 
        getPredictionsOrBuilderList() {
      return predictions_;
    }
    /**
     * repeated .CDOTAUserMsg_PredictionResult.Prediction predictions = 4;
     */
    public int getPredictionsCount() {
      return predictions_.size();
    }
    /**
     * repeated .CDOTAUserMsg_PredictionResult.Prediction predictions = 4;
     */
    public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PredictionResult.Prediction getPredictions(int index) {
      return predictions_.get(index);
    }
    /**
     * repeated .CDOTAUserMsg_PredictionResult.Prediction predictions = 4;
     */
    public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PredictionResult.PredictionOrBuilder getPredictionsOrBuilder(
        int index) {
      return predictions_.get(index);
    }

    private void initFields() {
      accountId_ = 0;
      matchId_ = 0L;
      correct_ = false;
      predictions_ = java.util.Collections.emptyList();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, accountId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt64(2, matchId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBool(3, correct_);
      }
      for (int i = 0; i < predictions_.size(); i++) {
        output.writeMessage(4, predictions_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, accountId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(2, matchId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(3, correct_);
      }
      for (int i = 0; i < predictions_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, predictions_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PredictionResult parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PredictionResult parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PredictionResult parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PredictionResult parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PredictionResult parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PredictionResult parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PredictionResult parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PredictionResult parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PredictionResult parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PredictionResult parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PredictionResult prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_PredictionResult}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_PredictionResult)
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PredictionResultOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_PredictionResult_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_PredictionResult_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PredictionResult.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PredictionResult.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PredictionResult.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getPredictionsFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        accountId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        matchId_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000002);
        correct_ = false;
        bitField0_ = (bitField0_ & ~0x00000004);
        if (predictionsBuilder_ == null) {
          predictions_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000008);
        } else {
          predictionsBuilder_.clear();
        }
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_PredictionResult_descriptor;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PredictionResult getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PredictionResult.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PredictionResult build() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PredictionResult result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PredictionResult buildPartial() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PredictionResult result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PredictionResult(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.accountId_ = accountId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.matchId_ = matchId_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.correct_ = correct_;
        if (predictionsBuilder_ == null) {
          if (((bitField0_ & 0x00000008) == 0x00000008)) {
            predictions_ = java.util.Collections.unmodifiableList(predictions_);
            bitField0_ = (bitField0_ & ~0x00000008);
          }
          result.predictions_ = predictions_;
        } else {
          result.predictions_ = predictionsBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PredictionResult) {
          return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PredictionResult)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PredictionResult other) {
        if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PredictionResult.getDefaultInstance()) return this;
        if (other.hasAccountId()) {
          setAccountId(other.getAccountId());
        }
        if (other.hasMatchId()) {
          setMatchId(other.getMatchId());
        }
        if (other.hasCorrect()) {
          setCorrect(other.getCorrect());
        }
        if (predictionsBuilder_ == null) {
          if (!other.predictions_.isEmpty()) {
            if (predictions_.isEmpty()) {
              predictions_ = other.predictions_;
              bitField0_ = (bitField0_ & ~0x00000008);
            } else {
              ensurePredictionsIsMutable();
              predictions_.addAll(other.predictions_);
            }
            onChanged();
          }
        } else {
          if (!other.predictions_.isEmpty()) {
            if (predictionsBuilder_.isEmpty()) {
              predictionsBuilder_.dispose();
              predictionsBuilder_ = null;
              predictions_ = other.predictions_;
              bitField0_ = (bitField0_ & ~0x00000008);
              predictionsBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getPredictionsFieldBuilder() : null;
            } else {
              predictionsBuilder_.addAllMessages(other.predictions_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PredictionResult parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PredictionResult) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int accountId_ ;
      /**
       * optional uint32 account_id = 1;
       */
      public boolean hasAccountId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional uint32 account_id = 1;
       */
      public int getAccountId() {
        return accountId_;
      }
      /**
       * optional uint32 account_id = 1;
       */
      public Builder setAccountId(int value) {
        bitField0_ |= 0x00000001;
        accountId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 account_id = 1;
       */
      public Builder clearAccountId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        accountId_ = 0;
        onChanged();
        return this;
      }

      private long matchId_ ;
      /**
       * optional uint64 match_id = 2;
       */
      public boolean hasMatchId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional uint64 match_id = 2;
       */
      public long getMatchId() {
        return matchId_;
      }
      /**
       * optional uint64 match_id = 2;
       */
      public Builder setMatchId(long value) {
        bitField0_ |= 0x00000002;
        matchId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint64 match_id = 2;
       */
      public Builder clearMatchId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        matchId_ = 0L;
        onChanged();
        return this;
      }

      private boolean correct_ ;
      /**
       * optional bool correct = 3;
       */
      public boolean hasCorrect() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional bool correct = 3;
       */
      public boolean getCorrect() {
        return correct_;
      }
      /**
       * optional bool correct = 3;
       */
      public Builder setCorrect(boolean value) {
        bitField0_ |= 0x00000004;
        correct_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool correct = 3;
       */
      public Builder clearCorrect() {
        bitField0_ = (bitField0_ & ~0x00000004);
        correct_ = false;
        onChanged();
        return this;
      }

      private java.util.List predictions_ =
        java.util.Collections.emptyList();
      private void ensurePredictionsIsMutable() {
        if (!((bitField0_ & 0x00000008) == 0x00000008)) {
          predictions_ = new java.util.ArrayList(predictions_);
          bitField0_ |= 0x00000008;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PredictionResult.Prediction, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PredictionResult.Prediction.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PredictionResult.PredictionOrBuilder> predictionsBuilder_;

      /**
       * repeated .CDOTAUserMsg_PredictionResult.Prediction predictions = 4;
       */
      public java.util.List getPredictionsList() {
        if (predictionsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(predictions_);
        } else {
          return predictionsBuilder_.getMessageList();
        }
      }
      /**
       * repeated .CDOTAUserMsg_PredictionResult.Prediction predictions = 4;
       */
      public int getPredictionsCount() {
        if (predictionsBuilder_ == null) {
          return predictions_.size();
        } else {
          return predictionsBuilder_.getCount();
        }
      }
      /**
       * repeated .CDOTAUserMsg_PredictionResult.Prediction predictions = 4;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PredictionResult.Prediction getPredictions(int index) {
        if (predictionsBuilder_ == null) {
          return predictions_.get(index);
        } else {
          return predictionsBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .CDOTAUserMsg_PredictionResult.Prediction predictions = 4;
       */
      public Builder setPredictions(
          int index, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PredictionResult.Prediction value) {
        if (predictionsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePredictionsIsMutable();
          predictions_.set(index, value);
          onChanged();
        } else {
          predictionsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_PredictionResult.Prediction predictions = 4;
       */
      public Builder setPredictions(
          int index, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PredictionResult.Prediction.Builder builderForValue) {
        if (predictionsBuilder_ == null) {
          ensurePredictionsIsMutable();
          predictions_.set(index, builderForValue.build());
          onChanged();
        } else {
          predictionsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_PredictionResult.Prediction predictions = 4;
       */
      public Builder addPredictions(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PredictionResult.Prediction value) {
        if (predictionsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePredictionsIsMutable();
          predictions_.add(value);
          onChanged();
        } else {
          predictionsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_PredictionResult.Prediction predictions = 4;
       */
      public Builder addPredictions(
          int index, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PredictionResult.Prediction value) {
        if (predictionsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePredictionsIsMutable();
          predictions_.add(index, value);
          onChanged();
        } else {
          predictionsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_PredictionResult.Prediction predictions = 4;
       */
      public Builder addPredictions(
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PredictionResult.Prediction.Builder builderForValue) {
        if (predictionsBuilder_ == null) {
          ensurePredictionsIsMutable();
          predictions_.add(builderForValue.build());
          onChanged();
        } else {
          predictionsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_PredictionResult.Prediction predictions = 4;
       */
      public Builder addPredictions(
          int index, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PredictionResult.Prediction.Builder builderForValue) {
        if (predictionsBuilder_ == null) {
          ensurePredictionsIsMutable();
          predictions_.add(index, builderForValue.build());
          onChanged();
        } else {
          predictionsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_PredictionResult.Prediction predictions = 4;
       */
      public Builder addAllPredictions(
          java.lang.Iterable values) {
        if (predictionsBuilder_ == null) {
          ensurePredictionsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, predictions_);
          onChanged();
        } else {
          predictionsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_PredictionResult.Prediction predictions = 4;
       */
      public Builder clearPredictions() {
        if (predictionsBuilder_ == null) {
          predictions_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000008);
          onChanged();
        } else {
          predictionsBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_PredictionResult.Prediction predictions = 4;
       */
      public Builder removePredictions(int index) {
        if (predictionsBuilder_ == null) {
          ensurePredictionsIsMutable();
          predictions_.remove(index);
          onChanged();
        } else {
          predictionsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_PredictionResult.Prediction predictions = 4;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PredictionResult.Prediction.Builder getPredictionsBuilder(
          int index) {
        return getPredictionsFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .CDOTAUserMsg_PredictionResult.Prediction predictions = 4;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PredictionResult.PredictionOrBuilder getPredictionsOrBuilder(
          int index) {
        if (predictionsBuilder_ == null) {
          return predictions_.get(index);  } else {
          return predictionsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .CDOTAUserMsg_PredictionResult.Prediction predictions = 4;
       */
      public java.util.List 
           getPredictionsOrBuilderList() {
        if (predictionsBuilder_ != null) {
          return predictionsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(predictions_);
        }
      }
      /**
       * repeated .CDOTAUserMsg_PredictionResult.Prediction predictions = 4;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PredictionResult.Prediction.Builder addPredictionsBuilder() {
        return getPredictionsFieldBuilder().addBuilder(
            skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PredictionResult.Prediction.getDefaultInstance());
      }
      /**
       * repeated .CDOTAUserMsg_PredictionResult.Prediction predictions = 4;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PredictionResult.Prediction.Builder addPredictionsBuilder(
          int index) {
        return getPredictionsFieldBuilder().addBuilder(
            index, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PredictionResult.Prediction.getDefaultInstance());
      }
      /**
       * repeated .CDOTAUserMsg_PredictionResult.Prediction predictions = 4;
       */
      public java.util.List 
           getPredictionsBuilderList() {
        return getPredictionsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PredictionResult.Prediction, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PredictionResult.Prediction.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PredictionResult.PredictionOrBuilder> 
          getPredictionsFieldBuilder() {
        if (predictionsBuilder_ == null) {
          predictionsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PredictionResult.Prediction, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PredictionResult.Prediction.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PredictionResult.PredictionOrBuilder>(
                  predictions_,
                  ((bitField0_ & 0x00000008) == 0x00000008),
                  getParentForChildren(),
                  isClean());
          predictions_ = null;
        }
        return predictionsBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_PredictionResult)
    }

    static {
      defaultInstance = new CDOTAUserMsg_PredictionResult(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_PredictionResult)
  }

  public interface CDOTAResponseQuerySerializedOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAResponseQuerySerialized)
      com.google.protobuf.MessageOrBuilder {

    /**
     * repeated .CDOTAResponseQuerySerialized.Fact facts = 1;
     */
    java.util.List 
        getFactsList();
    /**
     * repeated .CDOTAResponseQuerySerialized.Fact facts = 1;
     */
    skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized.Fact getFacts(int index);
    /**
     * repeated .CDOTAResponseQuerySerialized.Fact facts = 1;
     */
    int getFactsCount();
    /**
     * repeated .CDOTAResponseQuerySerialized.Fact facts = 1;
     */
    java.util.List 
        getFactsOrBuilderList();
    /**
     * repeated .CDOTAResponseQuerySerialized.Fact facts = 1;
     */
    skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized.FactOrBuilder getFactsOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code CDOTAResponseQuerySerialized}
   */
  public static final class CDOTAResponseQuerySerialized extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAResponseQuerySerialized)
      CDOTAResponseQuerySerializedOrBuilder {
    // Use CDOTAResponseQuerySerialized.newBuilder() to construct.
    private CDOTAResponseQuerySerialized(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAResponseQuerySerialized(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAResponseQuerySerialized defaultInstance;
    public static CDOTAResponseQuerySerialized getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAResponseQuerySerialized getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAResponseQuerySerialized(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                facts_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000001;
              }
              facts_.add(input.readMessage(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized.Fact.PARSER, extensionRegistry));
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
          facts_ = java.util.Collections.unmodifiableList(facts_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAResponseQuerySerialized_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAResponseQuerySerialized_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAResponseQuerySerialized parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAResponseQuerySerialized(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    public interface FactOrBuilder extends
        // @@protoc_insertion_point(interface_extends:CDOTAResponseQuerySerialized.Fact)
        com.google.protobuf.MessageOrBuilder {

      /**
       * required int32 key = 1;
       */
      boolean hasKey();
      /**
       * required int32 key = 1;
       */
      int getKey();

      /**
       * optional .CDOTAResponseQuerySerialized.Fact.ValueType valtype = 2 [default = NUMERIC];
       */
      boolean hasValtype();
      /**
       * optional .CDOTAResponseQuerySerialized.Fact.ValueType valtype = 2 [default = NUMERIC];
       */
      skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized.Fact.ValueType getValtype();

      /**
       * optional float val_numeric = 3;
       */
      boolean hasValNumeric();
      /**
       * optional float val_numeric = 3;
       */
      float getValNumeric();

      /**
       * optional string val_string = 4;
       */
      boolean hasValString();
      /**
       * optional string val_string = 4;
       */
      java.lang.String getValString();
      /**
       * optional string val_string = 4;
       */
      com.google.protobuf.ByteString
          getValStringBytes();
    }
    /**
     * Protobuf type {@code CDOTAResponseQuerySerialized.Fact}
     */
    public static final class Fact extends
        com.google.protobuf.GeneratedMessage implements
        // @@protoc_insertion_point(message_implements:CDOTAResponseQuerySerialized.Fact)
        FactOrBuilder {
      // Use Fact.newBuilder() to construct.
      private Fact(com.google.protobuf.GeneratedMessage.Builder builder) {
        super(builder);
        this.unknownFields = builder.getUnknownFields();
      }
      private Fact(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

      private static final Fact defaultInstance;
      public static Fact getDefaultInstance() {
        return defaultInstance;
      }

      public Fact getDefaultInstanceForType() {
        return defaultInstance;
      }

      private final com.google.protobuf.UnknownFieldSet unknownFields;
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
          getUnknownFields() {
        return this.unknownFields;
      }
      private Fact(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        initFields();
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
              case 8: {
                bitField0_ |= 0x00000001;
                key_ = input.readInt32();
                break;
              }
              case 16: {
                int rawValue = input.readEnum();
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized.Fact.ValueType value = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized.Fact.ValueType.valueOf(rawValue);
                if (value == null) {
                  unknownFields.mergeVarintField(2, rawValue);
                } else {
                  bitField0_ |= 0x00000002;
                  valtype_ = value;
                }
                break;
              }
              case 29: {
                bitField0_ |= 0x00000004;
                valNumeric_ = input.readFloat();
                break;
              }
              case 34: {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000008;
                valString_ = bs;
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e.getMessage()).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAResponseQuerySerialized_Fact_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAResponseQuerySerialized_Fact_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized.Fact.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized.Fact.Builder.class);
      }

      public static com.google.protobuf.Parser PARSER =
          new com.google.protobuf.AbstractParser() {
        public Fact parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new Fact(input, extensionRegistry);
        }
      };

      @java.lang.Override
      public com.google.protobuf.Parser getParserForType() {
        return PARSER;
      }

      /**
       * Protobuf enum {@code CDOTAResponseQuerySerialized.Fact.ValueType}
       */
      public enum ValueType
          implements com.google.protobuf.ProtocolMessageEnum {
        /**
         * NUMERIC = 1;
         */
        NUMERIC(0, 1),
        /**
         * STRING = 2;
         */
        STRING(1, 2),
        ;

        /**
         * NUMERIC = 1;
         */
        public static final int NUMERIC_VALUE = 1;
        /**
         * STRING = 2;
         */
        public static final int STRING_VALUE = 2;


        public final int getNumber() { return value; }

        public static ValueType valueOf(int value) {
          switch (value) {
            case 1: return NUMERIC;
            case 2: return STRING;
            default: return null;
          }
        }

        public static com.google.protobuf.Internal.EnumLiteMap
            internalGetValueMap() {
          return internalValueMap;
        }
        private static com.google.protobuf.Internal.EnumLiteMap
            internalValueMap =
              new com.google.protobuf.Internal.EnumLiteMap() {
                public ValueType findValueByNumber(int number) {
                  return ValueType.valueOf(number);
                }
              };

        public final com.google.protobuf.Descriptors.EnumValueDescriptor
            getValueDescriptor() {
          return getDescriptor().getValues().get(index);
        }
        public final com.google.protobuf.Descriptors.EnumDescriptor
            getDescriptorForType() {
          return getDescriptor();
        }
        public static final com.google.protobuf.Descriptors.EnumDescriptor
            getDescriptor() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized.Fact.getDescriptor().getEnumTypes().get(0);
        }

        private static final ValueType[] VALUES = values();

        public static ValueType valueOf(
            com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
          if (desc.getType() != getDescriptor()) {
            throw new java.lang.IllegalArgumentException(
              "EnumValueDescriptor is not for this type.");
          }
          return VALUES[desc.getIndex()];
        }

        private final int index;
        private final int value;

        private ValueType(int index, int value) {
          this.index = index;
          this.value = value;
        }

        // @@protoc_insertion_point(enum_scope:CDOTAResponseQuerySerialized.Fact.ValueType)
      }

      private int bitField0_;
      public static final int KEY_FIELD_NUMBER = 1;
      private int key_;
      /**
       * required int32 key = 1;
       */
      public boolean hasKey() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * required int32 key = 1;
       */
      public int getKey() {
        return key_;
      }

      public static final int VALTYPE_FIELD_NUMBER = 2;
      private skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized.Fact.ValueType valtype_;
      /**
       * optional .CDOTAResponseQuerySerialized.Fact.ValueType valtype = 2 [default = NUMERIC];
       */
      public boolean hasValtype() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional .CDOTAResponseQuerySerialized.Fact.ValueType valtype = 2 [default = NUMERIC];
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized.Fact.ValueType getValtype() {
        return valtype_;
      }

      public static final int VAL_NUMERIC_FIELD_NUMBER = 3;
      private float valNumeric_;
      /**
       * optional float val_numeric = 3;
       */
      public boolean hasValNumeric() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional float val_numeric = 3;
       */
      public float getValNumeric() {
        return valNumeric_;
      }

      public static final int VAL_STRING_FIELD_NUMBER = 4;
      private java.lang.Object valString_;
      /**
       * optional string val_string = 4;
       */
      public boolean hasValString() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional string val_string = 4;
       */
      public java.lang.String getValString() {
        java.lang.Object ref = valString_;
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          com.google.protobuf.ByteString bs = 
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            valString_ = s;
          }
          return s;
        }
      }
      /**
       * optional string val_string = 4;
       */
      public com.google.protobuf.ByteString
          getValStringBytes() {
        java.lang.Object ref = valString_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          valString_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      private void initFields() {
        key_ = 0;
        valtype_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized.Fact.ValueType.NUMERIC;
        valNumeric_ = 0F;
        valString_ = "";
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        if (!hasKey()) {
          memoizedIsInitialized = 0;
          return false;
        }
        memoizedIsInitialized = 1;
        return true;
      }

      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeInt32(1, key_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeEnum(2, valtype_.getNumber());
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          output.writeFloat(3, valNumeric_);
        }
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          output.writeBytes(4, getValStringBytes());
        }
        getUnknownFields().writeTo(output);
      }

      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;

        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(1, key_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeEnumSize(2, valtype_.getNumber());
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          size += com.google.protobuf.CodedOutputStream
            .computeFloatSize(3, valNumeric_);
        }
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          size += com.google.protobuf.CodedOutputStream
            .computeBytesSize(4, getValStringBytes());
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.Object writeReplace()
          throws java.io.ObjectStreamException {
        return super.writeReplace();
      }

      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized.Fact parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized.Fact parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized.Fact parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized.Fact parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized.Fact parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized.Fact parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized.Fact parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized.Fact parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized.Fact parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized.Fact parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }

      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized.Fact prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code CDOTAResponseQuerySerialized.Fact}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder implements
          // @@protoc_insertion_point(builder_implements:CDOTAResponseQuerySerialized.Fact)
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized.FactOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAResponseQuerySerialized_Fact_descriptor;
        }

        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAResponseQuerySerialized_Fact_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized.Fact.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized.Fact.Builder.class);
        }

        // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized.Fact.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          }
        }
        private static Builder create() {
          return new Builder();
        }

        public Builder clear() {
          super.clear();
          key_ = 0;
          bitField0_ = (bitField0_ & ~0x00000001);
          valtype_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized.Fact.ValueType.NUMERIC;
          bitField0_ = (bitField0_ & ~0x00000002);
          valNumeric_ = 0F;
          bitField0_ = (bitField0_ & ~0x00000004);
          valString_ = "";
          bitField0_ = (bitField0_ & ~0x00000008);
          return this;
        }

        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }

        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAResponseQuerySerialized_Fact_descriptor;
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized.Fact getDefaultInstanceForType() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized.Fact.getDefaultInstance();
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized.Fact build() {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized.Fact result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized.Fact buildPartial() {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized.Fact result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized.Fact(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.key_ = key_;
          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
            to_bitField0_ |= 0x00000002;
          }
          result.valtype_ = valtype_;
          if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
            to_bitField0_ |= 0x00000004;
          }
          result.valNumeric_ = valNumeric_;
          if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
            to_bitField0_ |= 0x00000008;
          }
          result.valString_ = valString_;
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }

        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized.Fact) {
            return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized.Fact)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized.Fact other) {
          if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized.Fact.getDefaultInstance()) return this;
          if (other.hasKey()) {
            setKey(other.getKey());
          }
          if (other.hasValtype()) {
            setValtype(other.getValtype());
          }
          if (other.hasValNumeric()) {
            setValNumeric(other.getValNumeric());
          }
          if (other.hasValString()) {
            bitField0_ |= 0x00000008;
            valString_ = other.valString_;
            onChanged();
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }

        public final boolean isInitialized() {
          if (!hasKey()) {
            
            return false;
          }
          return true;
        }

        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized.Fact parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized.Fact) e.getUnfinishedMessage();
            throw e;
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        private int key_ ;
        /**
         * required int32 key = 1;
         */
        public boolean hasKey() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * required int32 key = 1;
         */
        public int getKey() {
          return key_;
        }
        /**
         * required int32 key = 1;
         */
        public Builder setKey(int value) {
          bitField0_ |= 0x00000001;
          key_ = value;
          onChanged();
          return this;
        }
        /**
         * required int32 key = 1;
         */
        public Builder clearKey() {
          bitField0_ = (bitField0_ & ~0x00000001);
          key_ = 0;
          onChanged();
          return this;
        }

        private skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized.Fact.ValueType valtype_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized.Fact.ValueType.NUMERIC;
        /**
         * optional .CDOTAResponseQuerySerialized.Fact.ValueType valtype = 2 [default = NUMERIC];
         */
        public boolean hasValtype() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        /**
         * optional .CDOTAResponseQuerySerialized.Fact.ValueType valtype = 2 [default = NUMERIC];
         */
        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized.Fact.ValueType getValtype() {
          return valtype_;
        }
        /**
         * optional .CDOTAResponseQuerySerialized.Fact.ValueType valtype = 2 [default = NUMERIC];
         */
        public Builder setValtype(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized.Fact.ValueType value) {
          if (value == null) {
            throw new NullPointerException();
          }
          bitField0_ |= 0x00000002;
          valtype_ = value;
          onChanged();
          return this;
        }
        /**
         * optional .CDOTAResponseQuerySerialized.Fact.ValueType valtype = 2 [default = NUMERIC];
         */
        public Builder clearValtype() {
          bitField0_ = (bitField0_ & ~0x00000002);
          valtype_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized.Fact.ValueType.NUMERIC;
          onChanged();
          return this;
        }

        private float valNumeric_ ;
        /**
         * optional float val_numeric = 3;
         */
        public boolean hasValNumeric() {
          return ((bitField0_ & 0x00000004) == 0x00000004);
        }
        /**
         * optional float val_numeric = 3;
         */
        public float getValNumeric() {
          return valNumeric_;
        }
        /**
         * optional float val_numeric = 3;
         */
        public Builder setValNumeric(float value) {
          bitField0_ |= 0x00000004;
          valNumeric_ = value;
          onChanged();
          return this;
        }
        /**
         * optional float val_numeric = 3;
         */
        public Builder clearValNumeric() {
          bitField0_ = (bitField0_ & ~0x00000004);
          valNumeric_ = 0F;
          onChanged();
          return this;
        }

        private java.lang.Object valString_ = "";
        /**
         * optional string val_string = 4;
         */
        public boolean hasValString() {
          return ((bitField0_ & 0x00000008) == 0x00000008);
        }
        /**
         * optional string val_string = 4;
         */
        public java.lang.String getValString() {
          java.lang.Object ref = valString_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            if (bs.isValidUtf8()) {
              valString_ = s;
            }
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * optional string val_string = 4;
         */
        public com.google.protobuf.ByteString
            getValStringBytes() {
          java.lang.Object ref = valString_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            valString_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * optional string val_string = 4;
         */
        public Builder setValString(
            java.lang.String value) {
          if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000008;
          valString_ = value;
          onChanged();
          return this;
        }
        /**
         * optional string val_string = 4;
         */
        public Builder clearValString() {
          bitField0_ = (bitField0_ & ~0x00000008);
          valString_ = getDefaultInstance().getValString();
          onChanged();
          return this;
        }
        /**
         * optional string val_string = 4;
         */
        public Builder setValStringBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000008;
          valString_ = value;
          onChanged();
          return this;
        }

        // @@protoc_insertion_point(builder_scope:CDOTAResponseQuerySerialized.Fact)
      }

      static {
        defaultInstance = new Fact(true);
        defaultInstance.initFields();
      }

      // @@protoc_insertion_point(class_scope:CDOTAResponseQuerySerialized.Fact)
    }

    public static final int FACTS_FIELD_NUMBER = 1;
    private java.util.List facts_;
    /**
     * repeated .CDOTAResponseQuerySerialized.Fact facts = 1;
     */
    public java.util.List getFactsList() {
      return facts_;
    }
    /**
     * repeated .CDOTAResponseQuerySerialized.Fact facts = 1;
     */
    public java.util.List 
        getFactsOrBuilderList() {
      return facts_;
    }
    /**
     * repeated .CDOTAResponseQuerySerialized.Fact facts = 1;
     */
    public int getFactsCount() {
      return facts_.size();
    }
    /**
     * repeated .CDOTAResponseQuerySerialized.Fact facts = 1;
     */
    public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized.Fact getFacts(int index) {
      return facts_.get(index);
    }
    /**
     * repeated .CDOTAResponseQuerySerialized.Fact facts = 1;
     */
    public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized.FactOrBuilder getFactsOrBuilder(
        int index) {
      return facts_.get(index);
    }

    private void initFields() {
      facts_ = java.util.Collections.emptyList();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      for (int i = 0; i < getFactsCount(); i++) {
        if (!getFacts(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      for (int i = 0; i < facts_.size(); i++) {
        output.writeMessage(1, facts_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      for (int i = 0; i < facts_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, facts_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAResponseQuerySerialized}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAResponseQuerySerialized)
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerializedOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAResponseQuerySerialized_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAResponseQuerySerialized_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getFactsFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        if (factsBuilder_ == null) {
          facts_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          factsBuilder_.clear();
        }
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAResponseQuerySerialized_descriptor;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized build() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized buildPartial() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized(this);
        int from_bitField0_ = bitField0_;
        if (factsBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            facts_ = java.util.Collections.unmodifiableList(facts_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.facts_ = facts_;
        } else {
          result.facts_ = factsBuilder_.build();
        }
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized) {
          return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized other) {
        if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized.getDefaultInstance()) return this;
        if (factsBuilder_ == null) {
          if (!other.facts_.isEmpty()) {
            if (facts_.isEmpty()) {
              facts_ = other.facts_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureFactsIsMutable();
              facts_.addAll(other.facts_);
            }
            onChanged();
          }
        } else {
          if (!other.facts_.isEmpty()) {
            if (factsBuilder_.isEmpty()) {
              factsBuilder_.dispose();
              factsBuilder_ = null;
              facts_ = other.facts_;
              bitField0_ = (bitField0_ & ~0x00000001);
              factsBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getFactsFieldBuilder() : null;
            } else {
              factsBuilder_.addAllMessages(other.facts_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        for (int i = 0; i < getFactsCount(); i++) {
          if (!getFacts(i).isInitialized()) {
            
            return false;
          }
        }
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.util.List facts_ =
        java.util.Collections.emptyList();
      private void ensureFactsIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          facts_ = new java.util.ArrayList(facts_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized.Fact, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized.Fact.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized.FactOrBuilder> factsBuilder_;

      /**
       * repeated .CDOTAResponseQuerySerialized.Fact facts = 1;
       */
      public java.util.List getFactsList() {
        if (factsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(facts_);
        } else {
          return factsBuilder_.getMessageList();
        }
      }
      /**
       * repeated .CDOTAResponseQuerySerialized.Fact facts = 1;
       */
      public int getFactsCount() {
        if (factsBuilder_ == null) {
          return facts_.size();
        } else {
          return factsBuilder_.getCount();
        }
      }
      /**
       * repeated .CDOTAResponseQuerySerialized.Fact facts = 1;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized.Fact getFacts(int index) {
        if (factsBuilder_ == null) {
          return facts_.get(index);
        } else {
          return factsBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .CDOTAResponseQuerySerialized.Fact facts = 1;
       */
      public Builder setFacts(
          int index, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized.Fact value) {
        if (factsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureFactsIsMutable();
          facts_.set(index, value);
          onChanged();
        } else {
          factsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .CDOTAResponseQuerySerialized.Fact facts = 1;
       */
      public Builder setFacts(
          int index, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized.Fact.Builder builderForValue) {
        if (factsBuilder_ == null) {
          ensureFactsIsMutable();
          facts_.set(index, builderForValue.build());
          onChanged();
        } else {
          factsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CDOTAResponseQuerySerialized.Fact facts = 1;
       */
      public Builder addFacts(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized.Fact value) {
        if (factsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureFactsIsMutable();
          facts_.add(value);
          onChanged();
        } else {
          factsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .CDOTAResponseQuerySerialized.Fact facts = 1;
       */
      public Builder addFacts(
          int index, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized.Fact value) {
        if (factsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureFactsIsMutable();
          facts_.add(index, value);
          onChanged();
        } else {
          factsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .CDOTAResponseQuerySerialized.Fact facts = 1;
       */
      public Builder addFacts(
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized.Fact.Builder builderForValue) {
        if (factsBuilder_ == null) {
          ensureFactsIsMutable();
          facts_.add(builderForValue.build());
          onChanged();
        } else {
          factsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CDOTAResponseQuerySerialized.Fact facts = 1;
       */
      public Builder addFacts(
          int index, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized.Fact.Builder builderForValue) {
        if (factsBuilder_ == null) {
          ensureFactsIsMutable();
          facts_.add(index, builderForValue.build());
          onChanged();
        } else {
          factsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CDOTAResponseQuerySerialized.Fact facts = 1;
       */
      public Builder addAllFacts(
          java.lang.Iterable values) {
        if (factsBuilder_ == null) {
          ensureFactsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, facts_);
          onChanged();
        } else {
          factsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .CDOTAResponseQuerySerialized.Fact facts = 1;
       */
      public Builder clearFacts() {
        if (factsBuilder_ == null) {
          facts_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          factsBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .CDOTAResponseQuerySerialized.Fact facts = 1;
       */
      public Builder removeFacts(int index) {
        if (factsBuilder_ == null) {
          ensureFactsIsMutable();
          facts_.remove(index);
          onChanged();
        } else {
          factsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .CDOTAResponseQuerySerialized.Fact facts = 1;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized.Fact.Builder getFactsBuilder(
          int index) {
        return getFactsFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .CDOTAResponseQuerySerialized.Fact facts = 1;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized.FactOrBuilder getFactsOrBuilder(
          int index) {
        if (factsBuilder_ == null) {
          return facts_.get(index);  } else {
          return factsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .CDOTAResponseQuerySerialized.Fact facts = 1;
       */
      public java.util.List 
           getFactsOrBuilderList() {
        if (factsBuilder_ != null) {
          return factsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(facts_);
        }
      }
      /**
       * repeated .CDOTAResponseQuerySerialized.Fact facts = 1;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized.Fact.Builder addFactsBuilder() {
        return getFactsFieldBuilder().addBuilder(
            skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized.Fact.getDefaultInstance());
      }
      /**
       * repeated .CDOTAResponseQuerySerialized.Fact facts = 1;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized.Fact.Builder addFactsBuilder(
          int index) {
        return getFactsFieldBuilder().addBuilder(
            index, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized.Fact.getDefaultInstance());
      }
      /**
       * repeated .CDOTAResponseQuerySerialized.Fact facts = 1;
       */
      public java.util.List 
           getFactsBuilderList() {
        return getFactsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized.Fact, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized.Fact.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized.FactOrBuilder> 
          getFactsFieldBuilder() {
        if (factsBuilder_ == null) {
          factsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized.Fact, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized.Fact.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized.FactOrBuilder>(
                  facts_,
                  ((bitField0_ & 0x00000001) == 0x00000001),
                  getParentForChildren(),
                  isClean());
          facts_ = null;
        }
        return factsBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAResponseQuerySerialized)
    }

    static {
      defaultInstance = new CDOTAResponseQuerySerialized(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAResponseQuerySerialized)
  }

  public interface CDOTASpeechMatchOnClientOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTASpeechMatchOnClient)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional int32 concept = 1;
     */
    boolean hasConcept();
    /**
     * optional int32 concept = 1;
     */
    int getConcept();

    /**
     * optional int32 recipient_type = 2;
     */
    boolean hasRecipientType();
    /**
     * optional int32 recipient_type = 2;
     */
    int getRecipientType();

    /**
     * optional .CDOTAResponseQuerySerialized responsequery = 3;
     */
    boolean hasResponsequery();
    /**
     * optional .CDOTAResponseQuerySerialized responsequery = 3;
     */
    skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized getResponsequery();
    /**
     * optional .CDOTAResponseQuerySerialized responsequery = 3;
     */
    skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerializedOrBuilder getResponsequeryOrBuilder();

    /**
     * optional sfixed32 randomseed = 4 [default = 0];
     */
    boolean hasRandomseed();
    /**
     * optional sfixed32 randomseed = 4 [default = 0];
     */
    int getRandomseed();
  }
  /**
   * Protobuf type {@code CDOTASpeechMatchOnClient}
   */
  public static final class CDOTASpeechMatchOnClient extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTASpeechMatchOnClient)
      CDOTASpeechMatchOnClientOrBuilder {
    // Use CDOTASpeechMatchOnClient.newBuilder() to construct.
    private CDOTASpeechMatchOnClient(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTASpeechMatchOnClient(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTASpeechMatchOnClient defaultInstance;
    public static CDOTASpeechMatchOnClient getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTASpeechMatchOnClient getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTASpeechMatchOnClient(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              concept_ = input.readInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              recipientType_ = input.readInt32();
              break;
            }
            case 26: {
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized.Builder subBuilder = null;
              if (((bitField0_ & 0x00000004) == 0x00000004)) {
                subBuilder = responsequery_.toBuilder();
              }
              responsequery_ = input.readMessage(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(responsequery_);
                responsequery_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000004;
              break;
            }
            case 37: {
              bitField0_ |= 0x00000008;
              randomseed_ = input.readSFixed32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTASpeechMatchOnClient_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTASpeechMatchOnClient_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTASpeechMatchOnClient.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTASpeechMatchOnClient.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTASpeechMatchOnClient parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTASpeechMatchOnClient(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int CONCEPT_FIELD_NUMBER = 1;
    private int concept_;
    /**
     * optional int32 concept = 1;
     */
    public boolean hasConcept() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 concept = 1;
     */
    public int getConcept() {
      return concept_;
    }

    public static final int RECIPIENT_TYPE_FIELD_NUMBER = 2;
    private int recipientType_;
    /**
     * optional int32 recipient_type = 2;
     */
    public boolean hasRecipientType() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional int32 recipient_type = 2;
     */
    public int getRecipientType() {
      return recipientType_;
    }

    public static final int RESPONSEQUERY_FIELD_NUMBER = 3;
    private skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized responsequery_;
    /**
     * optional .CDOTAResponseQuerySerialized responsequery = 3;
     */
    public boolean hasResponsequery() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional .CDOTAResponseQuerySerialized responsequery = 3;
     */
    public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized getResponsequery() {
      return responsequery_;
    }
    /**
     * optional .CDOTAResponseQuerySerialized responsequery = 3;
     */
    public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerializedOrBuilder getResponsequeryOrBuilder() {
      return responsequery_;
    }

    public static final int RANDOMSEED_FIELD_NUMBER = 4;
    private int randomseed_;
    /**
     * optional sfixed32 randomseed = 4 [default = 0];
     */
    public boolean hasRandomseed() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional sfixed32 randomseed = 4 [default = 0];
     */
    public int getRandomseed() {
      return randomseed_;
    }

    private void initFields() {
      concept_ = 0;
      recipientType_ = 0;
      responsequery_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized.getDefaultInstance();
      randomseed_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (hasResponsequery()) {
        if (!getResponsequery().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, concept_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, recipientType_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeMessage(3, responsequery_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeSFixed32(4, randomseed_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, concept_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, recipientType_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, responsequery_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeSFixed32Size(4, randomseed_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTASpeechMatchOnClient parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTASpeechMatchOnClient parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTASpeechMatchOnClient parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTASpeechMatchOnClient parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTASpeechMatchOnClient parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTASpeechMatchOnClient parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTASpeechMatchOnClient parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTASpeechMatchOnClient parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTASpeechMatchOnClient parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTASpeechMatchOnClient parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTASpeechMatchOnClient prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTASpeechMatchOnClient}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTASpeechMatchOnClient)
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTASpeechMatchOnClientOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTASpeechMatchOnClient_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTASpeechMatchOnClient_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTASpeechMatchOnClient.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTASpeechMatchOnClient.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTASpeechMatchOnClient.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getResponsequeryFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        concept_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        recipientType_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        if (responsequeryBuilder_ == null) {
          responsequery_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized.getDefaultInstance();
        } else {
          responsequeryBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        randomseed_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTASpeechMatchOnClient_descriptor;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTASpeechMatchOnClient getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTASpeechMatchOnClient.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTASpeechMatchOnClient build() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTASpeechMatchOnClient result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTASpeechMatchOnClient buildPartial() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTASpeechMatchOnClient result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTASpeechMatchOnClient(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.concept_ = concept_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.recipientType_ = recipientType_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        if (responsequeryBuilder_ == null) {
          result.responsequery_ = responsequery_;
        } else {
          result.responsequery_ = responsequeryBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.randomseed_ = randomseed_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTASpeechMatchOnClient) {
          return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTASpeechMatchOnClient)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTASpeechMatchOnClient other) {
        if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTASpeechMatchOnClient.getDefaultInstance()) return this;
        if (other.hasConcept()) {
          setConcept(other.getConcept());
        }
        if (other.hasRecipientType()) {
          setRecipientType(other.getRecipientType());
        }
        if (other.hasResponsequery()) {
          mergeResponsequery(other.getResponsequery());
        }
        if (other.hasRandomseed()) {
          setRandomseed(other.getRandomseed());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (hasResponsequery()) {
          if (!getResponsequery().isInitialized()) {
            
            return false;
          }
        }
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTASpeechMatchOnClient parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTASpeechMatchOnClient) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int concept_ ;
      /**
       * optional int32 concept = 1;
       */
      public boolean hasConcept() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 concept = 1;
       */
      public int getConcept() {
        return concept_;
      }
      /**
       * optional int32 concept = 1;
       */
      public Builder setConcept(int value) {
        bitField0_ |= 0x00000001;
        concept_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 concept = 1;
       */
      public Builder clearConcept() {
        bitField0_ = (bitField0_ & ~0x00000001);
        concept_ = 0;
        onChanged();
        return this;
      }

      private int recipientType_ ;
      /**
       * optional int32 recipient_type = 2;
       */
      public boolean hasRecipientType() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional int32 recipient_type = 2;
       */
      public int getRecipientType() {
        return recipientType_;
      }
      /**
       * optional int32 recipient_type = 2;
       */
      public Builder setRecipientType(int value) {
        bitField0_ |= 0x00000002;
        recipientType_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 recipient_type = 2;
       */
      public Builder clearRecipientType() {
        bitField0_ = (bitField0_ & ~0x00000002);
        recipientType_ = 0;
        onChanged();
        return this;
      }

      private skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized responsequery_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerializedOrBuilder> responsequeryBuilder_;
      /**
       * optional .CDOTAResponseQuerySerialized responsequery = 3;
       */
      public boolean hasResponsequery() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional .CDOTAResponseQuerySerialized responsequery = 3;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized getResponsequery() {
        if (responsequeryBuilder_ == null) {
          return responsequery_;
        } else {
          return responsequeryBuilder_.getMessage();
        }
      }
      /**
       * optional .CDOTAResponseQuerySerialized responsequery = 3;
       */
      public Builder setResponsequery(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized value) {
        if (responsequeryBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          responsequery_ = value;
          onChanged();
        } else {
          responsequeryBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * optional .CDOTAResponseQuerySerialized responsequery = 3;
       */
      public Builder setResponsequery(
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized.Builder builderForValue) {
        if (responsequeryBuilder_ == null) {
          responsequery_ = builderForValue.build();
          onChanged();
        } else {
          responsequeryBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * optional .CDOTAResponseQuerySerialized responsequery = 3;
       */
      public Builder mergeResponsequery(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized value) {
        if (responsequeryBuilder_ == null) {
          if (((bitField0_ & 0x00000004) == 0x00000004) &&
              responsequery_ != skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized.getDefaultInstance()) {
            responsequery_ =
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized.newBuilder(responsequery_).mergeFrom(value).buildPartial();
          } else {
            responsequery_ = value;
          }
          onChanged();
        } else {
          responsequeryBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * optional .CDOTAResponseQuerySerialized responsequery = 3;
       */
      public Builder clearResponsequery() {
        if (responsequeryBuilder_ == null) {
          responsequery_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized.getDefaultInstance();
          onChanged();
        } else {
          responsequeryBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }
      /**
       * optional .CDOTAResponseQuerySerialized responsequery = 3;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized.Builder getResponsequeryBuilder() {
        bitField0_ |= 0x00000004;
        onChanged();
        return getResponsequeryFieldBuilder().getBuilder();
      }
      /**
       * optional .CDOTAResponseQuerySerialized responsequery = 3;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerializedOrBuilder getResponsequeryOrBuilder() {
        if (responsequeryBuilder_ != null) {
          return responsequeryBuilder_.getMessageOrBuilder();
        } else {
          return responsequery_;
        }
      }
      /**
       * optional .CDOTAResponseQuerySerialized responsequery = 3;
       */
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerializedOrBuilder> 
          getResponsequeryFieldBuilder() {
        if (responsequeryBuilder_ == null) {
          responsequeryBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerialized.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAResponseQuerySerializedOrBuilder>(
                  getResponsequery(),
                  getParentForChildren(),
                  isClean());
          responsequery_ = null;
        }
        return responsequeryBuilder_;
      }

      private int randomseed_ ;
      /**
       * optional sfixed32 randomseed = 4 [default = 0];
       */
      public boolean hasRandomseed() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional sfixed32 randomseed = 4 [default = 0];
       */
      public int getRandomseed() {
        return randomseed_;
      }
      /**
       * optional sfixed32 randomseed = 4 [default = 0];
       */
      public Builder setRandomseed(int value) {
        bitField0_ |= 0x00000008;
        randomseed_ = value;
        onChanged();
        return this;
      }
      /**
       * optional sfixed32 randomseed = 4 [default = 0];
       */
      public Builder clearRandomseed() {
        bitField0_ = (bitField0_ & ~0x00000008);
        randomseed_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTASpeechMatchOnClient)
    }

    static {
      defaultInstance = new CDOTASpeechMatchOnClient(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTASpeechMatchOnClient)
  }

  public interface CDOTAUserMsg_UnitEventOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_UnitEvent)
      com.google.protobuf.MessageOrBuilder {

    /**
     * required .EDotaEntityMessages msg_type = 1 [default = DOTA_UNIT_SPEECH];
     */
    boolean hasMsgType();
    /**
     * required .EDotaEntityMessages msg_type = 1 [default = DOTA_UNIT_SPEECH];
     */
    skadistats.clarity.wire.common.proto.DotaUserMessages.EDotaEntityMessages getMsgType();

    /**
     * required int32 entity_index = 2;
     */
    boolean hasEntityIndex();
    /**
     * required int32 entity_index = 2;
     */
    int getEntityIndex();

    /**
     * optional .CDOTAUserMsg_UnitEvent.Speech speech = 3;
     */
    boolean hasSpeech();
    /**
     * optional .CDOTAUserMsg_UnitEvent.Speech speech = 3;
     */
    skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.Speech getSpeech();
    /**
     * optional .CDOTAUserMsg_UnitEvent.Speech speech = 3;
     */
    skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.SpeechOrBuilder getSpeechOrBuilder();

    /**
     * optional .CDOTAUserMsg_UnitEvent.SpeechMute speech_mute = 4;
     */
    boolean hasSpeechMute();
    /**
     * optional .CDOTAUserMsg_UnitEvent.SpeechMute speech_mute = 4;
     */
    skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.SpeechMute getSpeechMute();
    /**
     * optional .CDOTAUserMsg_UnitEvent.SpeechMute speech_mute = 4;
     */
    skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.SpeechMuteOrBuilder getSpeechMuteOrBuilder();

    /**
     * optional .CDOTAUserMsg_UnitEvent.AddGesture add_gesture = 5;
     */
    boolean hasAddGesture();
    /**
     * optional .CDOTAUserMsg_UnitEvent.AddGesture add_gesture = 5;
     */
    skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.AddGesture getAddGesture();
    /**
     * optional .CDOTAUserMsg_UnitEvent.AddGesture add_gesture = 5;
     */
    skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.AddGestureOrBuilder getAddGestureOrBuilder();

    /**
     * optional .CDOTAUserMsg_UnitEvent.RemoveGesture remove_gesture = 6;
     */
    boolean hasRemoveGesture();
    /**
     * optional .CDOTAUserMsg_UnitEvent.RemoveGesture remove_gesture = 6;
     */
    skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.RemoveGesture getRemoveGesture();
    /**
     * optional .CDOTAUserMsg_UnitEvent.RemoveGesture remove_gesture = 6;
     */
    skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.RemoveGestureOrBuilder getRemoveGestureOrBuilder();

    /**
     * optional .CDOTAUserMsg_UnitEvent.BloodImpact blood_impact = 7;
     */
    boolean hasBloodImpact();
    /**
     * optional .CDOTAUserMsg_UnitEvent.BloodImpact blood_impact = 7;
     */
    skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.BloodImpact getBloodImpact();
    /**
     * optional .CDOTAUserMsg_UnitEvent.BloodImpact blood_impact = 7;
     */
    skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.BloodImpactOrBuilder getBloodImpactOrBuilder();

    /**
     * optional .CDOTAUserMsg_UnitEvent.FadeGesture fade_gesture = 8;
     */
    boolean hasFadeGesture();
    /**
     * optional .CDOTAUserMsg_UnitEvent.FadeGesture fade_gesture = 8;
     */
    skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.FadeGesture getFadeGesture();
    /**
     * optional .CDOTAUserMsg_UnitEvent.FadeGesture fade_gesture = 8;
     */
    skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.FadeGestureOrBuilder getFadeGestureOrBuilder();

    /**
     * optional .CDOTASpeechMatchOnClient speech_match_on_client = 9;
     */
    boolean hasSpeechMatchOnClient();
    /**
     * optional .CDOTASpeechMatchOnClient speech_match_on_client = 9;
     */
    skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTASpeechMatchOnClient getSpeechMatchOnClient();
    /**
     * optional .CDOTASpeechMatchOnClient speech_match_on_client = 9;
     */
    skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTASpeechMatchOnClientOrBuilder getSpeechMatchOnClientOrBuilder();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_UnitEvent}
   */
  public static final class CDOTAUserMsg_UnitEvent extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_UnitEvent)
      CDOTAUserMsg_UnitEventOrBuilder {
    // Use CDOTAUserMsg_UnitEvent.newBuilder() to construct.
    private CDOTAUserMsg_UnitEvent(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_UnitEvent(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_UnitEvent defaultInstance;
    public static CDOTAUserMsg_UnitEvent getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_UnitEvent getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_UnitEvent(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              int rawValue = input.readEnum();
              skadistats.clarity.wire.common.proto.DotaUserMessages.EDotaEntityMessages value = skadistats.clarity.wire.common.proto.DotaUserMessages.EDotaEntityMessages.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(1, rawValue);
              } else {
                bitField0_ |= 0x00000001;
                msgType_ = value;
              }
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              entityIndex_ = input.readInt32();
              break;
            }
            case 26: {
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.Speech.Builder subBuilder = null;
              if (((bitField0_ & 0x00000004) == 0x00000004)) {
                subBuilder = speech_.toBuilder();
              }
              speech_ = input.readMessage(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.Speech.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(speech_);
                speech_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000004;
              break;
            }
            case 34: {
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.SpeechMute.Builder subBuilder = null;
              if (((bitField0_ & 0x00000008) == 0x00000008)) {
                subBuilder = speechMute_.toBuilder();
              }
              speechMute_ = input.readMessage(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.SpeechMute.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(speechMute_);
                speechMute_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000008;
              break;
            }
            case 42: {
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.AddGesture.Builder subBuilder = null;
              if (((bitField0_ & 0x00000010) == 0x00000010)) {
                subBuilder = addGesture_.toBuilder();
              }
              addGesture_ = input.readMessage(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.AddGesture.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(addGesture_);
                addGesture_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000010;
              break;
            }
            case 50: {
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.RemoveGesture.Builder subBuilder = null;
              if (((bitField0_ & 0x00000020) == 0x00000020)) {
                subBuilder = removeGesture_.toBuilder();
              }
              removeGesture_ = input.readMessage(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.RemoveGesture.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(removeGesture_);
                removeGesture_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000020;
              break;
            }
            case 58: {
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.BloodImpact.Builder subBuilder = null;
              if (((bitField0_ & 0x00000040) == 0x00000040)) {
                subBuilder = bloodImpact_.toBuilder();
              }
              bloodImpact_ = input.readMessage(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.BloodImpact.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(bloodImpact_);
                bloodImpact_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000040;
              break;
            }
            case 66: {
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.FadeGesture.Builder subBuilder = null;
              if (((bitField0_ & 0x00000080) == 0x00000080)) {
                subBuilder = fadeGesture_.toBuilder();
              }
              fadeGesture_ = input.readMessage(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.FadeGesture.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(fadeGesture_);
                fadeGesture_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000080;
              break;
            }
            case 74: {
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTASpeechMatchOnClient.Builder subBuilder = null;
              if (((bitField0_ & 0x00000100) == 0x00000100)) {
                subBuilder = speechMatchOnClient_.toBuilder();
              }
              speechMatchOnClient_ = input.readMessage(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTASpeechMatchOnClient.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(speechMatchOnClient_);
                speechMatchOnClient_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000100;
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_UnitEvent_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_UnitEvent_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_UnitEvent parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_UnitEvent(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    public interface IntervalOrBuilder extends
        // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_UnitEvent.Interval)
        com.google.protobuf.MessageOrBuilder {

      /**
       * optional float start = 1;
       */
      boolean hasStart();
      /**
       * optional float start = 1;
       */
      float getStart();

      /**
       * optional float range = 2;
       */
      boolean hasRange();
      /**
       * optional float range = 2;
       */
      float getRange();
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_UnitEvent.Interval}
     */
    public static final class Interval extends
        com.google.protobuf.GeneratedMessage implements
        // @@protoc_insertion_point(message_implements:CDOTAUserMsg_UnitEvent.Interval)
        IntervalOrBuilder {
      // Use Interval.newBuilder() to construct.
      private Interval(com.google.protobuf.GeneratedMessage.Builder builder) {
        super(builder);
        this.unknownFields = builder.getUnknownFields();
      }
      private Interval(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

      private static final Interval defaultInstance;
      public static Interval getDefaultInstance() {
        return defaultInstance;
      }

      public Interval getDefaultInstanceForType() {
        return defaultInstance;
      }

      private final com.google.protobuf.UnknownFieldSet unknownFields;
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
          getUnknownFields() {
        return this.unknownFields;
      }
      private Interval(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        initFields();
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
              case 13: {
                bitField0_ |= 0x00000001;
                start_ = input.readFloat();
                break;
              }
              case 21: {
                bitField0_ |= 0x00000002;
                range_ = input.readFloat();
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e.getMessage()).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_UnitEvent_Interval_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_UnitEvent_Interval_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.Interval.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.Interval.Builder.class);
      }

      public static com.google.protobuf.Parser PARSER =
          new com.google.protobuf.AbstractParser() {
        public Interval parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new Interval(input, extensionRegistry);
        }
      };

      @java.lang.Override
      public com.google.protobuf.Parser getParserForType() {
        return PARSER;
      }

      private int bitField0_;
      public static final int START_FIELD_NUMBER = 1;
      private float start_;
      /**
       * optional float start = 1;
       */
      public boolean hasStart() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional float start = 1;
       */
      public float getStart() {
        return start_;
      }

      public static final int RANGE_FIELD_NUMBER = 2;
      private float range_;
      /**
       * optional float range = 2;
       */
      public boolean hasRange() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional float range = 2;
       */
      public float getRange() {
        return range_;
      }

      private void initFields() {
        start_ = 0F;
        range_ = 0F;
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeFloat(1, start_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeFloat(2, range_);
        }
        getUnknownFields().writeTo(output);
      }

      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;

        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeFloatSize(1, start_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeFloatSize(2, range_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.Object writeReplace()
          throws java.io.ObjectStreamException {
        return super.writeReplace();
      }

      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.Interval parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.Interval parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.Interval parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.Interval parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.Interval parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.Interval parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.Interval parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.Interval parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.Interval parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.Interval parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }

      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.Interval prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code CDOTAUserMsg_UnitEvent.Interval}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder implements
          // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_UnitEvent.Interval)
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.IntervalOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_UnitEvent_Interval_descriptor;
        }

        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_UnitEvent_Interval_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.Interval.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.Interval.Builder.class);
        }

        // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.Interval.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          }
        }
        private static Builder create() {
          return new Builder();
        }

        public Builder clear() {
          super.clear();
          start_ = 0F;
          bitField0_ = (bitField0_ & ~0x00000001);
          range_ = 0F;
          bitField0_ = (bitField0_ & ~0x00000002);
          return this;
        }

        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }

        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_UnitEvent_Interval_descriptor;
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.Interval getDefaultInstanceForType() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.Interval.getDefaultInstance();
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.Interval build() {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.Interval result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.Interval buildPartial() {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.Interval result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.Interval(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.start_ = start_;
          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
            to_bitField0_ |= 0x00000002;
          }
          result.range_ = range_;
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }

        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.Interval) {
            return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.Interval)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.Interval other) {
          if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.Interval.getDefaultInstance()) return this;
          if (other.hasStart()) {
            setStart(other.getStart());
          }
          if (other.hasRange()) {
            setRange(other.getRange());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }

        public final boolean isInitialized() {
          return true;
        }

        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.Interval parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.Interval) e.getUnfinishedMessage();
            throw e;
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        private float start_ ;
        /**
         * optional float start = 1;
         */
        public boolean hasStart() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * optional float start = 1;
         */
        public float getStart() {
          return start_;
        }
        /**
         * optional float start = 1;
         */
        public Builder setStart(float value) {
          bitField0_ |= 0x00000001;
          start_ = value;
          onChanged();
          return this;
        }
        /**
         * optional float start = 1;
         */
        public Builder clearStart() {
          bitField0_ = (bitField0_ & ~0x00000001);
          start_ = 0F;
          onChanged();
          return this;
        }

        private float range_ ;
        /**
         * optional float range = 2;
         */
        public boolean hasRange() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        /**
         * optional float range = 2;
         */
        public float getRange() {
          return range_;
        }
        /**
         * optional float range = 2;
         */
        public Builder setRange(float value) {
          bitField0_ |= 0x00000002;
          range_ = value;
          onChanged();
          return this;
        }
        /**
         * optional float range = 2;
         */
        public Builder clearRange() {
          bitField0_ = (bitField0_ & ~0x00000002);
          range_ = 0F;
          onChanged();
          return this;
        }

        // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_UnitEvent.Interval)
      }

      static {
        defaultInstance = new Interval(true);
        defaultInstance.initFields();
      }

      // @@protoc_insertion_point(class_scope:CDOTAUserMsg_UnitEvent.Interval)
    }

    public interface SpeechOrBuilder extends
        // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_UnitEvent.Speech)
        com.google.protobuf.MessageOrBuilder {

      /**
       * optional int32 concept = 1;
       */
      boolean hasConcept();
      /**
       * optional int32 concept = 1;
       */
      int getConcept();

      /**
       * optional string response = 2;
       */
      boolean hasResponse();
      /**
       * optional string response = 2;
       */
      java.lang.String getResponse();
      /**
       * optional string response = 2;
       */
      com.google.protobuf.ByteString
          getResponseBytes();

      /**
       * optional int32 recipient_type = 3;
       */
      boolean hasRecipientType();
      /**
       * optional int32 recipient_type = 3;
       */
      int getRecipientType();

      /**
       * optional int32 level = 4;
       */
      boolean hasLevel();
      /**
       * optional int32 level = 4;
       */
      int getLevel();

      /**
       * optional bool muteable = 5 [default = false];
       */
      boolean hasMuteable();
      /**
       * optional bool muteable = 5 [default = false];
       */
      boolean getMuteable();

      /**
       * optional .CDOTAUserMsg_UnitEvent.Interval predelay = 6;
       */
      boolean hasPredelay();
      /**
       * optional .CDOTAUserMsg_UnitEvent.Interval predelay = 6;
       */
      skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.Interval getPredelay();
      /**
       * optional .CDOTAUserMsg_UnitEvent.Interval predelay = 6;
       */
      skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.IntervalOrBuilder getPredelayOrBuilder();

      /**
       * optional uint32 flags = 7;
       */
      boolean hasFlags();
      /**
       * optional uint32 flags = 7;
       */
      int getFlags();
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_UnitEvent.Speech}
     */
    public static final class Speech extends
        com.google.protobuf.GeneratedMessage implements
        // @@protoc_insertion_point(message_implements:CDOTAUserMsg_UnitEvent.Speech)
        SpeechOrBuilder {
      // Use Speech.newBuilder() to construct.
      private Speech(com.google.protobuf.GeneratedMessage.Builder builder) {
        super(builder);
        this.unknownFields = builder.getUnknownFields();
      }
      private Speech(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

      private static final Speech defaultInstance;
      public static Speech getDefaultInstance() {
        return defaultInstance;
      }

      public Speech getDefaultInstanceForType() {
        return defaultInstance;
      }

      private final com.google.protobuf.UnknownFieldSet unknownFields;
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
          getUnknownFields() {
        return this.unknownFields;
      }
      private Speech(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        initFields();
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
              case 8: {
                bitField0_ |= 0x00000001;
                concept_ = input.readInt32();
                break;
              }
              case 18: {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000002;
                response_ = bs;
                break;
              }
              case 24: {
                bitField0_ |= 0x00000004;
                recipientType_ = input.readInt32();
                break;
              }
              case 32: {
                bitField0_ |= 0x00000008;
                level_ = input.readInt32();
                break;
              }
              case 40: {
                bitField0_ |= 0x00000010;
                muteable_ = input.readBool();
                break;
              }
              case 50: {
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.Interval.Builder subBuilder = null;
                if (((bitField0_ & 0x00000020) == 0x00000020)) {
                  subBuilder = predelay_.toBuilder();
                }
                predelay_ = input.readMessage(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.Interval.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(predelay_);
                  predelay_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000020;
                break;
              }
              case 56: {
                bitField0_ |= 0x00000040;
                flags_ = input.readUInt32();
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e.getMessage()).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_UnitEvent_Speech_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_UnitEvent_Speech_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.Speech.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.Speech.Builder.class);
      }

      public static com.google.protobuf.Parser PARSER =
          new com.google.protobuf.AbstractParser() {
        public Speech parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new Speech(input, extensionRegistry);
        }
      };

      @java.lang.Override
      public com.google.protobuf.Parser getParserForType() {
        return PARSER;
      }

      private int bitField0_;
      public static final int CONCEPT_FIELD_NUMBER = 1;
      private int concept_;
      /**
       * optional int32 concept = 1;
       */
      public boolean hasConcept() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 concept = 1;
       */
      public int getConcept() {
        return concept_;
      }

      public static final int RESPONSE_FIELD_NUMBER = 2;
      private java.lang.Object response_;
      /**
       * optional string response = 2;
       */
      public boolean hasResponse() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional string response = 2;
       */
      public java.lang.String getResponse() {
        java.lang.Object ref = response_;
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          com.google.protobuf.ByteString bs = 
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            response_ = s;
          }
          return s;
        }
      }
      /**
       * optional string response = 2;
       */
      public com.google.protobuf.ByteString
          getResponseBytes() {
        java.lang.Object ref = response_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          response_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      public static final int RECIPIENT_TYPE_FIELD_NUMBER = 3;
      private int recipientType_;
      /**
       * optional int32 recipient_type = 3;
       */
      public boolean hasRecipientType() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional int32 recipient_type = 3;
       */
      public int getRecipientType() {
        return recipientType_;
      }

      public static final int LEVEL_FIELD_NUMBER = 4;
      private int level_;
      /**
       * optional int32 level = 4;
       */
      public boolean hasLevel() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional int32 level = 4;
       */
      public int getLevel() {
        return level_;
      }

      public static final int MUTEABLE_FIELD_NUMBER = 5;
      private boolean muteable_;
      /**
       * optional bool muteable = 5 [default = false];
       */
      public boolean hasMuteable() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * optional bool muteable = 5 [default = false];
       */
      public boolean getMuteable() {
        return muteable_;
      }

      public static final int PREDELAY_FIELD_NUMBER = 6;
      private skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.Interval predelay_;
      /**
       * optional .CDOTAUserMsg_UnitEvent.Interval predelay = 6;
       */
      public boolean hasPredelay() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.Interval predelay = 6;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.Interval getPredelay() {
        return predelay_;
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.Interval predelay = 6;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.IntervalOrBuilder getPredelayOrBuilder() {
        return predelay_;
      }

      public static final int FLAGS_FIELD_NUMBER = 7;
      private int flags_;
      /**
       * optional uint32 flags = 7;
       */
      public boolean hasFlags() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      /**
       * optional uint32 flags = 7;
       */
      public int getFlags() {
        return flags_;
      }

      private void initFields() {
        concept_ = 0;
        response_ = "";
        recipientType_ = 0;
        level_ = 0;
        muteable_ = false;
        predelay_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.Interval.getDefaultInstance();
        flags_ = 0;
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeInt32(1, concept_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeBytes(2, getResponseBytes());
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          output.writeInt32(3, recipientType_);
        }
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          output.writeInt32(4, level_);
        }
        if (((bitField0_ & 0x00000010) == 0x00000010)) {
          output.writeBool(5, muteable_);
        }
        if (((bitField0_ & 0x00000020) == 0x00000020)) {
          output.writeMessage(6, predelay_);
        }
        if (((bitField0_ & 0x00000040) == 0x00000040)) {
          output.writeUInt32(7, flags_);
        }
        getUnknownFields().writeTo(output);
      }

      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;

        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(1, concept_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeBytesSize(2, getResponseBytes());
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(3, recipientType_);
        }
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(4, level_);
        }
        if (((bitField0_ & 0x00000010) == 0x00000010)) {
          size += com.google.protobuf.CodedOutputStream
            .computeBoolSize(5, muteable_);
        }
        if (((bitField0_ & 0x00000020) == 0x00000020)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(6, predelay_);
        }
        if (((bitField0_ & 0x00000040) == 0x00000040)) {
          size += com.google.protobuf.CodedOutputStream
            .computeUInt32Size(7, flags_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.Object writeReplace()
          throws java.io.ObjectStreamException {
        return super.writeReplace();
      }

      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.Speech parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.Speech parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.Speech parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.Speech parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.Speech parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.Speech parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.Speech parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.Speech parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.Speech parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.Speech parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }

      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.Speech prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code CDOTAUserMsg_UnitEvent.Speech}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder implements
          // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_UnitEvent.Speech)
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.SpeechOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_UnitEvent_Speech_descriptor;
        }

        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_UnitEvent_Speech_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.Speech.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.Speech.Builder.class);
        }

        // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.Speech.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
            getPredelayFieldBuilder();
          }
        }
        private static Builder create() {
          return new Builder();
        }

        public Builder clear() {
          super.clear();
          concept_ = 0;
          bitField0_ = (bitField0_ & ~0x00000001);
          response_ = "";
          bitField0_ = (bitField0_ & ~0x00000002);
          recipientType_ = 0;
          bitField0_ = (bitField0_ & ~0x00000004);
          level_ = 0;
          bitField0_ = (bitField0_ & ~0x00000008);
          muteable_ = false;
          bitField0_ = (bitField0_ & ~0x00000010);
          if (predelayBuilder_ == null) {
            predelay_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.Interval.getDefaultInstance();
          } else {
            predelayBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000020);
          flags_ = 0;
          bitField0_ = (bitField0_ & ~0x00000040);
          return this;
        }

        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }

        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_UnitEvent_Speech_descriptor;
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.Speech getDefaultInstanceForType() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.Speech.getDefaultInstance();
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.Speech build() {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.Speech result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.Speech buildPartial() {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.Speech result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.Speech(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.concept_ = concept_;
          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
            to_bitField0_ |= 0x00000002;
          }
          result.response_ = response_;
          if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
            to_bitField0_ |= 0x00000004;
          }
          result.recipientType_ = recipientType_;
          if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
            to_bitField0_ |= 0x00000008;
          }
          result.level_ = level_;
          if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
            to_bitField0_ |= 0x00000010;
          }
          result.muteable_ = muteable_;
          if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
            to_bitField0_ |= 0x00000020;
          }
          if (predelayBuilder_ == null) {
            result.predelay_ = predelay_;
          } else {
            result.predelay_ = predelayBuilder_.build();
          }
          if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
            to_bitField0_ |= 0x00000040;
          }
          result.flags_ = flags_;
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }

        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.Speech) {
            return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.Speech)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.Speech other) {
          if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.Speech.getDefaultInstance()) return this;
          if (other.hasConcept()) {
            setConcept(other.getConcept());
          }
          if (other.hasResponse()) {
            bitField0_ |= 0x00000002;
            response_ = other.response_;
            onChanged();
          }
          if (other.hasRecipientType()) {
            setRecipientType(other.getRecipientType());
          }
          if (other.hasLevel()) {
            setLevel(other.getLevel());
          }
          if (other.hasMuteable()) {
            setMuteable(other.getMuteable());
          }
          if (other.hasPredelay()) {
            mergePredelay(other.getPredelay());
          }
          if (other.hasFlags()) {
            setFlags(other.getFlags());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }

        public final boolean isInitialized() {
          return true;
        }

        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.Speech parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.Speech) e.getUnfinishedMessage();
            throw e;
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        private int concept_ ;
        /**
         * optional int32 concept = 1;
         */
        public boolean hasConcept() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * optional int32 concept = 1;
         */
        public int getConcept() {
          return concept_;
        }
        /**
         * optional int32 concept = 1;
         */
        public Builder setConcept(int value) {
          bitField0_ |= 0x00000001;
          concept_ = value;
          onChanged();
          return this;
        }
        /**
         * optional int32 concept = 1;
         */
        public Builder clearConcept() {
          bitField0_ = (bitField0_ & ~0x00000001);
          concept_ = 0;
          onChanged();
          return this;
        }

        private java.lang.Object response_ = "";
        /**
         * optional string response = 2;
         */
        public boolean hasResponse() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        /**
         * optional string response = 2;
         */
        public java.lang.String getResponse() {
          java.lang.Object ref = response_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            if (bs.isValidUtf8()) {
              response_ = s;
            }
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * optional string response = 2;
         */
        public com.google.protobuf.ByteString
            getResponseBytes() {
          java.lang.Object ref = response_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            response_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * optional string response = 2;
         */
        public Builder setResponse(
            java.lang.String value) {
          if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
          response_ = value;
          onChanged();
          return this;
        }
        /**
         * optional string response = 2;
         */
        public Builder clearResponse() {
          bitField0_ = (bitField0_ & ~0x00000002);
          response_ = getDefaultInstance().getResponse();
          onChanged();
          return this;
        }
        /**
         * optional string response = 2;
         */
        public Builder setResponseBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
          response_ = value;
          onChanged();
          return this;
        }

        private int recipientType_ ;
        /**
         * optional int32 recipient_type = 3;
         */
        public boolean hasRecipientType() {
          return ((bitField0_ & 0x00000004) == 0x00000004);
        }
        /**
         * optional int32 recipient_type = 3;
         */
        public int getRecipientType() {
          return recipientType_;
        }
        /**
         * optional int32 recipient_type = 3;
         */
        public Builder setRecipientType(int value) {
          bitField0_ |= 0x00000004;
          recipientType_ = value;
          onChanged();
          return this;
        }
        /**
         * optional int32 recipient_type = 3;
         */
        public Builder clearRecipientType() {
          bitField0_ = (bitField0_ & ~0x00000004);
          recipientType_ = 0;
          onChanged();
          return this;
        }

        private int level_ ;
        /**
         * optional int32 level = 4;
         */
        public boolean hasLevel() {
          return ((bitField0_ & 0x00000008) == 0x00000008);
        }
        /**
         * optional int32 level = 4;
         */
        public int getLevel() {
          return level_;
        }
        /**
         * optional int32 level = 4;
         */
        public Builder setLevel(int value) {
          bitField0_ |= 0x00000008;
          level_ = value;
          onChanged();
          return this;
        }
        /**
         * optional int32 level = 4;
         */
        public Builder clearLevel() {
          bitField0_ = (bitField0_ & ~0x00000008);
          level_ = 0;
          onChanged();
          return this;
        }

        private boolean muteable_ ;
        /**
         * optional bool muteable = 5 [default = false];
         */
        public boolean hasMuteable() {
          return ((bitField0_ & 0x00000010) == 0x00000010);
        }
        /**
         * optional bool muteable = 5 [default = false];
         */
        public boolean getMuteable() {
          return muteable_;
        }
        /**
         * optional bool muteable = 5 [default = false];
         */
        public Builder setMuteable(boolean value) {
          bitField0_ |= 0x00000010;
          muteable_ = value;
          onChanged();
          return this;
        }
        /**
         * optional bool muteable = 5 [default = false];
         */
        public Builder clearMuteable() {
          bitField0_ = (bitField0_ & ~0x00000010);
          muteable_ = false;
          onChanged();
          return this;
        }

        private skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.Interval predelay_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.Interval.getDefaultInstance();
        private com.google.protobuf.SingleFieldBuilder<
            skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.Interval, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.Interval.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.IntervalOrBuilder> predelayBuilder_;
        /**
         * optional .CDOTAUserMsg_UnitEvent.Interval predelay = 6;
         */
        public boolean hasPredelay() {
          return ((bitField0_ & 0x00000020) == 0x00000020);
        }
        /**
         * optional .CDOTAUserMsg_UnitEvent.Interval predelay = 6;
         */
        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.Interval getPredelay() {
          if (predelayBuilder_ == null) {
            return predelay_;
          } else {
            return predelayBuilder_.getMessage();
          }
        }
        /**
         * optional .CDOTAUserMsg_UnitEvent.Interval predelay = 6;
         */
        public Builder setPredelay(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.Interval value) {
          if (predelayBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            predelay_ = value;
            onChanged();
          } else {
            predelayBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000020;
          return this;
        }
        /**
         * optional .CDOTAUserMsg_UnitEvent.Interval predelay = 6;
         */
        public Builder setPredelay(
            skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.Interval.Builder builderForValue) {
          if (predelayBuilder_ == null) {
            predelay_ = builderForValue.build();
            onChanged();
          } else {
            predelayBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000020;
          return this;
        }
        /**
         * optional .CDOTAUserMsg_UnitEvent.Interval predelay = 6;
         */
        public Builder mergePredelay(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.Interval value) {
          if (predelayBuilder_ == null) {
            if (((bitField0_ & 0x00000020) == 0x00000020) &&
                predelay_ != skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.Interval.getDefaultInstance()) {
              predelay_ =
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.Interval.newBuilder(predelay_).mergeFrom(value).buildPartial();
            } else {
              predelay_ = value;
            }
            onChanged();
          } else {
            predelayBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00000020;
          return this;
        }
        /**
         * optional .CDOTAUserMsg_UnitEvent.Interval predelay = 6;
         */
        public Builder clearPredelay() {
          if (predelayBuilder_ == null) {
            predelay_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.Interval.getDefaultInstance();
            onChanged();
          } else {
            predelayBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000020);
          return this;
        }
        /**
         * optional .CDOTAUserMsg_UnitEvent.Interval predelay = 6;
         */
        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.Interval.Builder getPredelayBuilder() {
          bitField0_ |= 0x00000020;
          onChanged();
          return getPredelayFieldBuilder().getBuilder();
        }
        /**
         * optional .CDOTAUserMsg_UnitEvent.Interval predelay = 6;
         */
        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.IntervalOrBuilder getPredelayOrBuilder() {
          if (predelayBuilder_ != null) {
            return predelayBuilder_.getMessageOrBuilder();
          } else {
            return predelay_;
          }
        }
        /**
         * optional .CDOTAUserMsg_UnitEvent.Interval predelay = 6;
         */
        private com.google.protobuf.SingleFieldBuilder<
            skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.Interval, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.Interval.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.IntervalOrBuilder> 
            getPredelayFieldBuilder() {
          if (predelayBuilder_ == null) {
            predelayBuilder_ = new com.google.protobuf.SingleFieldBuilder<
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.Interval, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.Interval.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.IntervalOrBuilder>(
                    getPredelay(),
                    getParentForChildren(),
                    isClean());
            predelay_ = null;
          }
          return predelayBuilder_;
        }

        private int flags_ ;
        /**
         * optional uint32 flags = 7;
         */
        public boolean hasFlags() {
          return ((bitField0_ & 0x00000040) == 0x00000040);
        }
        /**
         * optional uint32 flags = 7;
         */
        public int getFlags() {
          return flags_;
        }
        /**
         * optional uint32 flags = 7;
         */
        public Builder setFlags(int value) {
          bitField0_ |= 0x00000040;
          flags_ = value;
          onChanged();
          return this;
        }
        /**
         * optional uint32 flags = 7;
         */
        public Builder clearFlags() {
          bitField0_ = (bitField0_ & ~0x00000040);
          flags_ = 0;
          onChanged();
          return this;
        }

        // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_UnitEvent.Speech)
      }

      static {
        defaultInstance = new Speech(true);
        defaultInstance.initFields();
      }

      // @@protoc_insertion_point(class_scope:CDOTAUserMsg_UnitEvent.Speech)
    }

    public interface SpeechMuteOrBuilder extends
        // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_UnitEvent.SpeechMute)
        com.google.protobuf.MessageOrBuilder {

      /**
       * optional float delay = 1 [default = 0.5];
       */
      boolean hasDelay();
      /**
       * optional float delay = 1 [default = 0.5];
       */
      float getDelay();
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_UnitEvent.SpeechMute}
     */
    public static final class SpeechMute extends
        com.google.protobuf.GeneratedMessage implements
        // @@protoc_insertion_point(message_implements:CDOTAUserMsg_UnitEvent.SpeechMute)
        SpeechMuteOrBuilder {
      // Use SpeechMute.newBuilder() to construct.
      private SpeechMute(com.google.protobuf.GeneratedMessage.Builder builder) {
        super(builder);
        this.unknownFields = builder.getUnknownFields();
      }
      private SpeechMute(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

      private static final SpeechMute defaultInstance;
      public static SpeechMute getDefaultInstance() {
        return defaultInstance;
      }

      public SpeechMute getDefaultInstanceForType() {
        return defaultInstance;
      }

      private final com.google.protobuf.UnknownFieldSet unknownFields;
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
          getUnknownFields() {
        return this.unknownFields;
      }
      private SpeechMute(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        initFields();
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
              case 13: {
                bitField0_ |= 0x00000001;
                delay_ = input.readFloat();
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e.getMessage()).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_UnitEvent_SpeechMute_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_UnitEvent_SpeechMute_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.SpeechMute.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.SpeechMute.Builder.class);
      }

      public static com.google.protobuf.Parser PARSER =
          new com.google.protobuf.AbstractParser() {
        public SpeechMute parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new SpeechMute(input, extensionRegistry);
        }
      };

      @java.lang.Override
      public com.google.protobuf.Parser getParserForType() {
        return PARSER;
      }

      private int bitField0_;
      public static final int DELAY_FIELD_NUMBER = 1;
      private float delay_;
      /**
       * optional float delay = 1 [default = 0.5];
       */
      public boolean hasDelay() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional float delay = 1 [default = 0.5];
       */
      public float getDelay() {
        return delay_;
      }

      private void initFields() {
        delay_ = 0.5F;
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeFloat(1, delay_);
        }
        getUnknownFields().writeTo(output);
      }

      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;

        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeFloatSize(1, delay_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.Object writeReplace()
          throws java.io.ObjectStreamException {
        return super.writeReplace();
      }

      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.SpeechMute parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.SpeechMute parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.SpeechMute parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.SpeechMute parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.SpeechMute parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.SpeechMute parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.SpeechMute parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.SpeechMute parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.SpeechMute parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.SpeechMute parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }

      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.SpeechMute prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code CDOTAUserMsg_UnitEvent.SpeechMute}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder implements
          // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_UnitEvent.SpeechMute)
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.SpeechMuteOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_UnitEvent_SpeechMute_descriptor;
        }

        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_UnitEvent_SpeechMute_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.SpeechMute.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.SpeechMute.Builder.class);
        }

        // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.SpeechMute.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          }
        }
        private static Builder create() {
          return new Builder();
        }

        public Builder clear() {
          super.clear();
          delay_ = 0.5F;
          bitField0_ = (bitField0_ & ~0x00000001);
          return this;
        }

        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }

        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_UnitEvent_SpeechMute_descriptor;
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.SpeechMute getDefaultInstanceForType() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.SpeechMute.getDefaultInstance();
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.SpeechMute build() {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.SpeechMute result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.SpeechMute buildPartial() {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.SpeechMute result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.SpeechMute(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.delay_ = delay_;
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }

        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.SpeechMute) {
            return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.SpeechMute)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.SpeechMute other) {
          if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.SpeechMute.getDefaultInstance()) return this;
          if (other.hasDelay()) {
            setDelay(other.getDelay());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }

        public final boolean isInitialized() {
          return true;
        }

        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.SpeechMute parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.SpeechMute) e.getUnfinishedMessage();
            throw e;
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        private float delay_ = 0.5F;
        /**
         * optional float delay = 1 [default = 0.5];
         */
        public boolean hasDelay() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * optional float delay = 1 [default = 0.5];
         */
        public float getDelay() {
          return delay_;
        }
        /**
         * optional float delay = 1 [default = 0.5];
         */
        public Builder setDelay(float value) {
          bitField0_ |= 0x00000001;
          delay_ = value;
          onChanged();
          return this;
        }
        /**
         * optional float delay = 1 [default = 0.5];
         */
        public Builder clearDelay() {
          bitField0_ = (bitField0_ & ~0x00000001);
          delay_ = 0.5F;
          onChanged();
          return this;
        }

        // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_UnitEvent.SpeechMute)
      }

      static {
        defaultInstance = new SpeechMute(true);
        defaultInstance.initFields();
      }

      // @@protoc_insertion_point(class_scope:CDOTAUserMsg_UnitEvent.SpeechMute)
    }

    public interface AddGestureOrBuilder extends
        // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_UnitEvent.AddGesture)
        com.google.protobuf.MessageOrBuilder {

      /**
       * optional int32 activity = 1;
       */
      boolean hasActivity();
      /**
       * optional int32 activity = 1;
       */
      int getActivity();

      /**
       * optional int32 slot = 2;
       */
      boolean hasSlot();
      /**
       * optional int32 slot = 2;
       */
      int getSlot();

      /**
       * optional float fade_in = 3 [default = 0];
       */
      boolean hasFadeIn();
      /**
       * optional float fade_in = 3 [default = 0];
       */
      float getFadeIn();

      /**
       * optional float fade_out = 4 [default = 0.1];
       */
      boolean hasFadeOut();
      /**
       * optional float fade_out = 4 [default = 0.1];
       */
      float getFadeOut();

      /**
       * optional float playback_rate = 5 [default = 1];
       */
      boolean hasPlaybackRate();
      /**
       * optional float playback_rate = 5 [default = 1];
       */
      float getPlaybackRate();

      /**
       * optional int32 sequence_variant = 6;
       */
      boolean hasSequenceVariant();
      /**
       * optional int32 sequence_variant = 6;
       */
      int getSequenceVariant();
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_UnitEvent.AddGesture}
     */
    public static final class AddGesture extends
        com.google.protobuf.GeneratedMessage implements
        // @@protoc_insertion_point(message_implements:CDOTAUserMsg_UnitEvent.AddGesture)
        AddGestureOrBuilder {
      // Use AddGesture.newBuilder() to construct.
      private AddGesture(com.google.protobuf.GeneratedMessage.Builder builder) {
        super(builder);
        this.unknownFields = builder.getUnknownFields();
      }
      private AddGesture(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

      private static final AddGesture defaultInstance;
      public static AddGesture getDefaultInstance() {
        return defaultInstance;
      }

      public AddGesture getDefaultInstanceForType() {
        return defaultInstance;
      }

      private final com.google.protobuf.UnknownFieldSet unknownFields;
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
          getUnknownFields() {
        return this.unknownFields;
      }
      private AddGesture(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        initFields();
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
              case 8: {
                bitField0_ |= 0x00000001;
                activity_ = input.readInt32();
                break;
              }
              case 16: {
                bitField0_ |= 0x00000002;
                slot_ = input.readInt32();
                break;
              }
              case 29: {
                bitField0_ |= 0x00000004;
                fadeIn_ = input.readFloat();
                break;
              }
              case 37: {
                bitField0_ |= 0x00000008;
                fadeOut_ = input.readFloat();
                break;
              }
              case 45: {
                bitField0_ |= 0x00000010;
                playbackRate_ = input.readFloat();
                break;
              }
              case 48: {
                bitField0_ |= 0x00000020;
                sequenceVariant_ = input.readInt32();
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e.getMessage()).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_UnitEvent_AddGesture_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_UnitEvent_AddGesture_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.AddGesture.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.AddGesture.Builder.class);
      }

      public static com.google.protobuf.Parser PARSER =
          new com.google.protobuf.AbstractParser() {
        public AddGesture parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new AddGesture(input, extensionRegistry);
        }
      };

      @java.lang.Override
      public com.google.protobuf.Parser getParserForType() {
        return PARSER;
      }

      private int bitField0_;
      public static final int ACTIVITY_FIELD_NUMBER = 1;
      private int activity_;
      /**
       * optional int32 activity = 1;
       */
      public boolean hasActivity() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 activity = 1;
       */
      public int getActivity() {
        return activity_;
      }

      public static final int SLOT_FIELD_NUMBER = 2;
      private int slot_;
      /**
       * optional int32 slot = 2;
       */
      public boolean hasSlot() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional int32 slot = 2;
       */
      public int getSlot() {
        return slot_;
      }

      public static final int FADE_IN_FIELD_NUMBER = 3;
      private float fadeIn_;
      /**
       * optional float fade_in = 3 [default = 0];
       */
      public boolean hasFadeIn() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional float fade_in = 3 [default = 0];
       */
      public float getFadeIn() {
        return fadeIn_;
      }

      public static final int FADE_OUT_FIELD_NUMBER = 4;
      private float fadeOut_;
      /**
       * optional float fade_out = 4 [default = 0.1];
       */
      public boolean hasFadeOut() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional float fade_out = 4 [default = 0.1];
       */
      public float getFadeOut() {
        return fadeOut_;
      }

      public static final int PLAYBACK_RATE_FIELD_NUMBER = 5;
      private float playbackRate_;
      /**
       * optional float playback_rate = 5 [default = 1];
       */
      public boolean hasPlaybackRate() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * optional float playback_rate = 5 [default = 1];
       */
      public float getPlaybackRate() {
        return playbackRate_;
      }

      public static final int SEQUENCE_VARIANT_FIELD_NUMBER = 6;
      private int sequenceVariant_;
      /**
       * optional int32 sequence_variant = 6;
       */
      public boolean hasSequenceVariant() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * optional int32 sequence_variant = 6;
       */
      public int getSequenceVariant() {
        return sequenceVariant_;
      }

      private void initFields() {
        activity_ = 0;
        slot_ = 0;
        fadeIn_ = 0F;
        fadeOut_ = 0.1F;
        playbackRate_ = 1F;
        sequenceVariant_ = 0;
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeInt32(1, activity_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeInt32(2, slot_);
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          output.writeFloat(3, fadeIn_);
        }
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          output.writeFloat(4, fadeOut_);
        }
        if (((bitField0_ & 0x00000010) == 0x00000010)) {
          output.writeFloat(5, playbackRate_);
        }
        if (((bitField0_ & 0x00000020) == 0x00000020)) {
          output.writeInt32(6, sequenceVariant_);
        }
        getUnknownFields().writeTo(output);
      }

      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;

        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(1, activity_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(2, slot_);
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          size += com.google.protobuf.CodedOutputStream
            .computeFloatSize(3, fadeIn_);
        }
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          size += com.google.protobuf.CodedOutputStream
            .computeFloatSize(4, fadeOut_);
        }
        if (((bitField0_ & 0x00000010) == 0x00000010)) {
          size += com.google.protobuf.CodedOutputStream
            .computeFloatSize(5, playbackRate_);
        }
        if (((bitField0_ & 0x00000020) == 0x00000020)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(6, sequenceVariant_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.Object writeReplace()
          throws java.io.ObjectStreamException {
        return super.writeReplace();
      }

      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.AddGesture parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.AddGesture parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.AddGesture parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.AddGesture parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.AddGesture parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.AddGesture parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.AddGesture parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.AddGesture parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.AddGesture parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.AddGesture parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }

      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.AddGesture prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code CDOTAUserMsg_UnitEvent.AddGesture}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder implements
          // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_UnitEvent.AddGesture)
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.AddGestureOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_UnitEvent_AddGesture_descriptor;
        }

        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_UnitEvent_AddGesture_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.AddGesture.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.AddGesture.Builder.class);
        }

        // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.AddGesture.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          }
        }
        private static Builder create() {
          return new Builder();
        }

        public Builder clear() {
          super.clear();
          activity_ = 0;
          bitField0_ = (bitField0_ & ~0x00000001);
          slot_ = 0;
          bitField0_ = (bitField0_ & ~0x00000002);
          fadeIn_ = 0F;
          bitField0_ = (bitField0_ & ~0x00000004);
          fadeOut_ = 0.1F;
          bitField0_ = (bitField0_ & ~0x00000008);
          playbackRate_ = 1F;
          bitField0_ = (bitField0_ & ~0x00000010);
          sequenceVariant_ = 0;
          bitField0_ = (bitField0_ & ~0x00000020);
          return this;
        }

        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }

        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_UnitEvent_AddGesture_descriptor;
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.AddGesture getDefaultInstanceForType() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.AddGesture.getDefaultInstance();
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.AddGesture build() {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.AddGesture result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.AddGesture buildPartial() {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.AddGesture result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.AddGesture(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.activity_ = activity_;
          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
            to_bitField0_ |= 0x00000002;
          }
          result.slot_ = slot_;
          if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
            to_bitField0_ |= 0x00000004;
          }
          result.fadeIn_ = fadeIn_;
          if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
            to_bitField0_ |= 0x00000008;
          }
          result.fadeOut_ = fadeOut_;
          if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
            to_bitField0_ |= 0x00000010;
          }
          result.playbackRate_ = playbackRate_;
          if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
            to_bitField0_ |= 0x00000020;
          }
          result.sequenceVariant_ = sequenceVariant_;
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }

        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.AddGesture) {
            return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.AddGesture)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.AddGesture other) {
          if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.AddGesture.getDefaultInstance()) return this;
          if (other.hasActivity()) {
            setActivity(other.getActivity());
          }
          if (other.hasSlot()) {
            setSlot(other.getSlot());
          }
          if (other.hasFadeIn()) {
            setFadeIn(other.getFadeIn());
          }
          if (other.hasFadeOut()) {
            setFadeOut(other.getFadeOut());
          }
          if (other.hasPlaybackRate()) {
            setPlaybackRate(other.getPlaybackRate());
          }
          if (other.hasSequenceVariant()) {
            setSequenceVariant(other.getSequenceVariant());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }

        public final boolean isInitialized() {
          return true;
        }

        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.AddGesture parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.AddGesture) e.getUnfinishedMessage();
            throw e;
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        private int activity_ ;
        /**
         * optional int32 activity = 1;
         */
        public boolean hasActivity() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * optional int32 activity = 1;
         */
        public int getActivity() {
          return activity_;
        }
        /**
         * optional int32 activity = 1;
         */
        public Builder setActivity(int value) {
          bitField0_ |= 0x00000001;
          activity_ = value;
          onChanged();
          return this;
        }
        /**
         * optional int32 activity = 1;
         */
        public Builder clearActivity() {
          bitField0_ = (bitField0_ & ~0x00000001);
          activity_ = 0;
          onChanged();
          return this;
        }

        private int slot_ ;
        /**
         * optional int32 slot = 2;
         */
        public boolean hasSlot() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        /**
         * optional int32 slot = 2;
         */
        public int getSlot() {
          return slot_;
        }
        /**
         * optional int32 slot = 2;
         */
        public Builder setSlot(int value) {
          bitField0_ |= 0x00000002;
          slot_ = value;
          onChanged();
          return this;
        }
        /**
         * optional int32 slot = 2;
         */
        public Builder clearSlot() {
          bitField0_ = (bitField0_ & ~0x00000002);
          slot_ = 0;
          onChanged();
          return this;
        }

        private float fadeIn_ ;
        /**
         * optional float fade_in = 3 [default = 0];
         */
        public boolean hasFadeIn() {
          return ((bitField0_ & 0x00000004) == 0x00000004);
        }
        /**
         * optional float fade_in = 3 [default = 0];
         */
        public float getFadeIn() {
          return fadeIn_;
        }
        /**
         * optional float fade_in = 3 [default = 0];
         */
        public Builder setFadeIn(float value) {
          bitField0_ |= 0x00000004;
          fadeIn_ = value;
          onChanged();
          return this;
        }
        /**
         * optional float fade_in = 3 [default = 0];
         */
        public Builder clearFadeIn() {
          bitField0_ = (bitField0_ & ~0x00000004);
          fadeIn_ = 0F;
          onChanged();
          return this;
        }

        private float fadeOut_ = 0.1F;
        /**
         * optional float fade_out = 4 [default = 0.1];
         */
        public boolean hasFadeOut() {
          return ((bitField0_ & 0x00000008) == 0x00000008);
        }
        /**
         * optional float fade_out = 4 [default = 0.1];
         */
        public float getFadeOut() {
          return fadeOut_;
        }
        /**
         * optional float fade_out = 4 [default = 0.1];
         */
        public Builder setFadeOut(float value) {
          bitField0_ |= 0x00000008;
          fadeOut_ = value;
          onChanged();
          return this;
        }
        /**
         * optional float fade_out = 4 [default = 0.1];
         */
        public Builder clearFadeOut() {
          bitField0_ = (bitField0_ & ~0x00000008);
          fadeOut_ = 0.1F;
          onChanged();
          return this;
        }

        private float playbackRate_ = 1F;
        /**
         * optional float playback_rate = 5 [default = 1];
         */
        public boolean hasPlaybackRate() {
          return ((bitField0_ & 0x00000010) == 0x00000010);
        }
        /**
         * optional float playback_rate = 5 [default = 1];
         */
        public float getPlaybackRate() {
          return playbackRate_;
        }
        /**
         * optional float playback_rate = 5 [default = 1];
         */
        public Builder setPlaybackRate(float value) {
          bitField0_ |= 0x00000010;
          playbackRate_ = value;
          onChanged();
          return this;
        }
        /**
         * optional float playback_rate = 5 [default = 1];
         */
        public Builder clearPlaybackRate() {
          bitField0_ = (bitField0_ & ~0x00000010);
          playbackRate_ = 1F;
          onChanged();
          return this;
        }

        private int sequenceVariant_ ;
        /**
         * optional int32 sequence_variant = 6;
         */
        public boolean hasSequenceVariant() {
          return ((bitField0_ & 0x00000020) == 0x00000020);
        }
        /**
         * optional int32 sequence_variant = 6;
         */
        public int getSequenceVariant() {
          return sequenceVariant_;
        }
        /**
         * optional int32 sequence_variant = 6;
         */
        public Builder setSequenceVariant(int value) {
          bitField0_ |= 0x00000020;
          sequenceVariant_ = value;
          onChanged();
          return this;
        }
        /**
         * optional int32 sequence_variant = 6;
         */
        public Builder clearSequenceVariant() {
          bitField0_ = (bitField0_ & ~0x00000020);
          sequenceVariant_ = 0;
          onChanged();
          return this;
        }

        // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_UnitEvent.AddGesture)
      }

      static {
        defaultInstance = new AddGesture(true);
        defaultInstance.initFields();
      }

      // @@protoc_insertion_point(class_scope:CDOTAUserMsg_UnitEvent.AddGesture)
    }

    public interface RemoveGestureOrBuilder extends
        // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_UnitEvent.RemoveGesture)
        com.google.protobuf.MessageOrBuilder {

      /**
       * optional int32 activity = 1;
       */
      boolean hasActivity();
      /**
       * optional int32 activity = 1;
       */
      int getActivity();
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_UnitEvent.RemoveGesture}
     */
    public static final class RemoveGesture extends
        com.google.protobuf.GeneratedMessage implements
        // @@protoc_insertion_point(message_implements:CDOTAUserMsg_UnitEvent.RemoveGesture)
        RemoveGestureOrBuilder {
      // Use RemoveGesture.newBuilder() to construct.
      private RemoveGesture(com.google.protobuf.GeneratedMessage.Builder builder) {
        super(builder);
        this.unknownFields = builder.getUnknownFields();
      }
      private RemoveGesture(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

      private static final RemoveGesture defaultInstance;
      public static RemoveGesture getDefaultInstance() {
        return defaultInstance;
      }

      public RemoveGesture getDefaultInstanceForType() {
        return defaultInstance;
      }

      private final com.google.protobuf.UnknownFieldSet unknownFields;
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
          getUnknownFields() {
        return this.unknownFields;
      }
      private RemoveGesture(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        initFields();
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
              case 8: {
                bitField0_ |= 0x00000001;
                activity_ = input.readInt32();
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e.getMessage()).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_UnitEvent_RemoveGesture_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_UnitEvent_RemoveGesture_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.RemoveGesture.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.RemoveGesture.Builder.class);
      }

      public static com.google.protobuf.Parser PARSER =
          new com.google.protobuf.AbstractParser() {
        public RemoveGesture parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new RemoveGesture(input, extensionRegistry);
        }
      };

      @java.lang.Override
      public com.google.protobuf.Parser getParserForType() {
        return PARSER;
      }

      private int bitField0_;
      public static final int ACTIVITY_FIELD_NUMBER = 1;
      private int activity_;
      /**
       * optional int32 activity = 1;
       */
      public boolean hasActivity() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 activity = 1;
       */
      public int getActivity() {
        return activity_;
      }

      private void initFields() {
        activity_ = 0;
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeInt32(1, activity_);
        }
        getUnknownFields().writeTo(output);
      }

      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;

        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(1, activity_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.Object writeReplace()
          throws java.io.ObjectStreamException {
        return super.writeReplace();
      }

      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.RemoveGesture parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.RemoveGesture parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.RemoveGesture parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.RemoveGesture parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.RemoveGesture parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.RemoveGesture parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.RemoveGesture parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.RemoveGesture parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.RemoveGesture parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.RemoveGesture parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }

      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.RemoveGesture prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code CDOTAUserMsg_UnitEvent.RemoveGesture}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder implements
          // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_UnitEvent.RemoveGesture)
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.RemoveGestureOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_UnitEvent_RemoveGesture_descriptor;
        }

        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_UnitEvent_RemoveGesture_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.RemoveGesture.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.RemoveGesture.Builder.class);
        }

        // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.RemoveGesture.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          }
        }
        private static Builder create() {
          return new Builder();
        }

        public Builder clear() {
          super.clear();
          activity_ = 0;
          bitField0_ = (bitField0_ & ~0x00000001);
          return this;
        }

        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }

        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_UnitEvent_RemoveGesture_descriptor;
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.RemoveGesture getDefaultInstanceForType() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.RemoveGesture.getDefaultInstance();
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.RemoveGesture build() {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.RemoveGesture result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.RemoveGesture buildPartial() {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.RemoveGesture result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.RemoveGesture(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.activity_ = activity_;
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }

        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.RemoveGesture) {
            return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.RemoveGesture)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.RemoveGesture other) {
          if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.RemoveGesture.getDefaultInstance()) return this;
          if (other.hasActivity()) {
            setActivity(other.getActivity());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }

        public final boolean isInitialized() {
          return true;
        }

        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.RemoveGesture parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.RemoveGesture) e.getUnfinishedMessage();
            throw e;
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        private int activity_ ;
        /**
         * optional int32 activity = 1;
         */
        public boolean hasActivity() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * optional int32 activity = 1;
         */
        public int getActivity() {
          return activity_;
        }
        /**
         * optional int32 activity = 1;
         */
        public Builder setActivity(int value) {
          bitField0_ |= 0x00000001;
          activity_ = value;
          onChanged();
          return this;
        }
        /**
         * optional int32 activity = 1;
         */
        public Builder clearActivity() {
          bitField0_ = (bitField0_ & ~0x00000001);
          activity_ = 0;
          onChanged();
          return this;
        }

        // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_UnitEvent.RemoveGesture)
      }

      static {
        defaultInstance = new RemoveGesture(true);
        defaultInstance.initFields();
      }

      // @@protoc_insertion_point(class_scope:CDOTAUserMsg_UnitEvent.RemoveGesture)
    }

    public interface BloodImpactOrBuilder extends
        // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_UnitEvent.BloodImpact)
        com.google.protobuf.MessageOrBuilder {

      /**
       * optional int32 scale = 1;
       */
      boolean hasScale();
      /**
       * optional int32 scale = 1;
       */
      int getScale();

      /**
       * optional int32 x_normal = 2;
       */
      boolean hasXNormal();
      /**
       * optional int32 x_normal = 2;
       */
      int getXNormal();

      /**
       * optional int32 y_normal = 3;
       */
      boolean hasYNormal();
      /**
       * optional int32 y_normal = 3;
       */
      int getYNormal();
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_UnitEvent.BloodImpact}
     */
    public static final class BloodImpact extends
        com.google.protobuf.GeneratedMessage implements
        // @@protoc_insertion_point(message_implements:CDOTAUserMsg_UnitEvent.BloodImpact)
        BloodImpactOrBuilder {
      // Use BloodImpact.newBuilder() to construct.
      private BloodImpact(com.google.protobuf.GeneratedMessage.Builder builder) {
        super(builder);
        this.unknownFields = builder.getUnknownFields();
      }
      private BloodImpact(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

      private static final BloodImpact defaultInstance;
      public static BloodImpact getDefaultInstance() {
        return defaultInstance;
      }

      public BloodImpact getDefaultInstanceForType() {
        return defaultInstance;
      }

      private final com.google.protobuf.UnknownFieldSet unknownFields;
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
          getUnknownFields() {
        return this.unknownFields;
      }
      private BloodImpact(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        initFields();
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
              case 8: {
                bitField0_ |= 0x00000001;
                scale_ = input.readInt32();
                break;
              }
              case 16: {
                bitField0_ |= 0x00000002;
                xNormal_ = input.readInt32();
                break;
              }
              case 24: {
                bitField0_ |= 0x00000004;
                yNormal_ = input.readInt32();
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e.getMessage()).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_UnitEvent_BloodImpact_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_UnitEvent_BloodImpact_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.BloodImpact.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.BloodImpact.Builder.class);
      }

      public static com.google.protobuf.Parser PARSER =
          new com.google.protobuf.AbstractParser() {
        public BloodImpact parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new BloodImpact(input, extensionRegistry);
        }
      };

      @java.lang.Override
      public com.google.protobuf.Parser getParserForType() {
        return PARSER;
      }

      private int bitField0_;
      public static final int SCALE_FIELD_NUMBER = 1;
      private int scale_;
      /**
       * optional int32 scale = 1;
       */
      public boolean hasScale() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 scale = 1;
       */
      public int getScale() {
        return scale_;
      }

      public static final int X_NORMAL_FIELD_NUMBER = 2;
      private int xNormal_;
      /**
       * optional int32 x_normal = 2;
       */
      public boolean hasXNormal() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional int32 x_normal = 2;
       */
      public int getXNormal() {
        return xNormal_;
      }

      public static final int Y_NORMAL_FIELD_NUMBER = 3;
      private int yNormal_;
      /**
       * optional int32 y_normal = 3;
       */
      public boolean hasYNormal() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional int32 y_normal = 3;
       */
      public int getYNormal() {
        return yNormal_;
      }

      private void initFields() {
        scale_ = 0;
        xNormal_ = 0;
        yNormal_ = 0;
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeInt32(1, scale_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeInt32(2, xNormal_);
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          output.writeInt32(3, yNormal_);
        }
        getUnknownFields().writeTo(output);
      }

      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;

        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(1, scale_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(2, xNormal_);
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(3, yNormal_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.Object writeReplace()
          throws java.io.ObjectStreamException {
        return super.writeReplace();
      }

      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.BloodImpact parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.BloodImpact parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.BloodImpact parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.BloodImpact parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.BloodImpact parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.BloodImpact parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.BloodImpact parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.BloodImpact parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.BloodImpact parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.BloodImpact parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }

      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.BloodImpact prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code CDOTAUserMsg_UnitEvent.BloodImpact}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder implements
          // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_UnitEvent.BloodImpact)
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.BloodImpactOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_UnitEvent_BloodImpact_descriptor;
        }

        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_UnitEvent_BloodImpact_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.BloodImpact.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.BloodImpact.Builder.class);
        }

        // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.BloodImpact.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          }
        }
        private static Builder create() {
          return new Builder();
        }

        public Builder clear() {
          super.clear();
          scale_ = 0;
          bitField0_ = (bitField0_ & ~0x00000001);
          xNormal_ = 0;
          bitField0_ = (bitField0_ & ~0x00000002);
          yNormal_ = 0;
          bitField0_ = (bitField0_ & ~0x00000004);
          return this;
        }

        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }

        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_UnitEvent_BloodImpact_descriptor;
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.BloodImpact getDefaultInstanceForType() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.BloodImpact.getDefaultInstance();
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.BloodImpact build() {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.BloodImpact result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.BloodImpact buildPartial() {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.BloodImpact result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.BloodImpact(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.scale_ = scale_;
          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
            to_bitField0_ |= 0x00000002;
          }
          result.xNormal_ = xNormal_;
          if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
            to_bitField0_ |= 0x00000004;
          }
          result.yNormal_ = yNormal_;
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }

        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.BloodImpact) {
            return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.BloodImpact)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.BloodImpact other) {
          if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.BloodImpact.getDefaultInstance()) return this;
          if (other.hasScale()) {
            setScale(other.getScale());
          }
          if (other.hasXNormal()) {
            setXNormal(other.getXNormal());
          }
          if (other.hasYNormal()) {
            setYNormal(other.getYNormal());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }

        public final boolean isInitialized() {
          return true;
        }

        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.BloodImpact parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.BloodImpact) e.getUnfinishedMessage();
            throw e;
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        private int scale_ ;
        /**
         * optional int32 scale = 1;
         */
        public boolean hasScale() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * optional int32 scale = 1;
         */
        public int getScale() {
          return scale_;
        }
        /**
         * optional int32 scale = 1;
         */
        public Builder setScale(int value) {
          bitField0_ |= 0x00000001;
          scale_ = value;
          onChanged();
          return this;
        }
        /**
         * optional int32 scale = 1;
         */
        public Builder clearScale() {
          bitField0_ = (bitField0_ & ~0x00000001);
          scale_ = 0;
          onChanged();
          return this;
        }

        private int xNormal_ ;
        /**
         * optional int32 x_normal = 2;
         */
        public boolean hasXNormal() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        /**
         * optional int32 x_normal = 2;
         */
        public int getXNormal() {
          return xNormal_;
        }
        /**
         * optional int32 x_normal = 2;
         */
        public Builder setXNormal(int value) {
          bitField0_ |= 0x00000002;
          xNormal_ = value;
          onChanged();
          return this;
        }
        /**
         * optional int32 x_normal = 2;
         */
        public Builder clearXNormal() {
          bitField0_ = (bitField0_ & ~0x00000002);
          xNormal_ = 0;
          onChanged();
          return this;
        }

        private int yNormal_ ;
        /**
         * optional int32 y_normal = 3;
         */
        public boolean hasYNormal() {
          return ((bitField0_ & 0x00000004) == 0x00000004);
        }
        /**
         * optional int32 y_normal = 3;
         */
        public int getYNormal() {
          return yNormal_;
        }
        /**
         * optional int32 y_normal = 3;
         */
        public Builder setYNormal(int value) {
          bitField0_ |= 0x00000004;
          yNormal_ = value;
          onChanged();
          return this;
        }
        /**
         * optional int32 y_normal = 3;
         */
        public Builder clearYNormal() {
          bitField0_ = (bitField0_ & ~0x00000004);
          yNormal_ = 0;
          onChanged();
          return this;
        }

        // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_UnitEvent.BloodImpact)
      }

      static {
        defaultInstance = new BloodImpact(true);
        defaultInstance.initFields();
      }

      // @@protoc_insertion_point(class_scope:CDOTAUserMsg_UnitEvent.BloodImpact)
    }

    public interface FadeGestureOrBuilder extends
        // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_UnitEvent.FadeGesture)
        com.google.protobuf.MessageOrBuilder {

      /**
       * optional int32 activity = 1;
       */
      boolean hasActivity();
      /**
       * optional int32 activity = 1;
       */
      int getActivity();
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_UnitEvent.FadeGesture}
     */
    public static final class FadeGesture extends
        com.google.protobuf.GeneratedMessage implements
        // @@protoc_insertion_point(message_implements:CDOTAUserMsg_UnitEvent.FadeGesture)
        FadeGestureOrBuilder {
      // Use FadeGesture.newBuilder() to construct.
      private FadeGesture(com.google.protobuf.GeneratedMessage.Builder builder) {
        super(builder);
        this.unknownFields = builder.getUnknownFields();
      }
      private FadeGesture(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

      private static final FadeGesture defaultInstance;
      public static FadeGesture getDefaultInstance() {
        return defaultInstance;
      }

      public FadeGesture getDefaultInstanceForType() {
        return defaultInstance;
      }

      private final com.google.protobuf.UnknownFieldSet unknownFields;
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
          getUnknownFields() {
        return this.unknownFields;
      }
      private FadeGesture(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        initFields();
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
              case 8: {
                bitField0_ |= 0x00000001;
                activity_ = input.readInt32();
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e.getMessage()).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_UnitEvent_FadeGesture_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_UnitEvent_FadeGesture_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.FadeGesture.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.FadeGesture.Builder.class);
      }

      public static com.google.protobuf.Parser PARSER =
          new com.google.protobuf.AbstractParser() {
        public FadeGesture parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new FadeGesture(input, extensionRegistry);
        }
      };

      @java.lang.Override
      public com.google.protobuf.Parser getParserForType() {
        return PARSER;
      }

      private int bitField0_;
      public static final int ACTIVITY_FIELD_NUMBER = 1;
      private int activity_;
      /**
       * optional int32 activity = 1;
       */
      public boolean hasActivity() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 activity = 1;
       */
      public int getActivity() {
        return activity_;
      }

      private void initFields() {
        activity_ = 0;
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeInt32(1, activity_);
        }
        getUnknownFields().writeTo(output);
      }

      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;

        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(1, activity_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.Object writeReplace()
          throws java.io.ObjectStreamException {
        return super.writeReplace();
      }

      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.FadeGesture parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.FadeGesture parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.FadeGesture parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.FadeGesture parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.FadeGesture parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.FadeGesture parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.FadeGesture parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.FadeGesture parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.FadeGesture parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.FadeGesture parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }

      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.FadeGesture prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code CDOTAUserMsg_UnitEvent.FadeGesture}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder implements
          // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_UnitEvent.FadeGesture)
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.FadeGestureOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_UnitEvent_FadeGesture_descriptor;
        }

        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_UnitEvent_FadeGesture_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.FadeGesture.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.FadeGesture.Builder.class);
        }

        // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.FadeGesture.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          }
        }
        private static Builder create() {
          return new Builder();
        }

        public Builder clear() {
          super.clear();
          activity_ = 0;
          bitField0_ = (bitField0_ & ~0x00000001);
          return this;
        }

        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }

        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_UnitEvent_FadeGesture_descriptor;
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.FadeGesture getDefaultInstanceForType() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.FadeGesture.getDefaultInstance();
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.FadeGesture build() {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.FadeGesture result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.FadeGesture buildPartial() {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.FadeGesture result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.FadeGesture(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.activity_ = activity_;
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }

        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.FadeGesture) {
            return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.FadeGesture)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.FadeGesture other) {
          if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.FadeGesture.getDefaultInstance()) return this;
          if (other.hasActivity()) {
            setActivity(other.getActivity());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }

        public final boolean isInitialized() {
          return true;
        }

        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.FadeGesture parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.FadeGesture) e.getUnfinishedMessage();
            throw e;
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        private int activity_ ;
        /**
         * optional int32 activity = 1;
         */
        public boolean hasActivity() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * optional int32 activity = 1;
         */
        public int getActivity() {
          return activity_;
        }
        /**
         * optional int32 activity = 1;
         */
        public Builder setActivity(int value) {
          bitField0_ |= 0x00000001;
          activity_ = value;
          onChanged();
          return this;
        }
        /**
         * optional int32 activity = 1;
         */
        public Builder clearActivity() {
          bitField0_ = (bitField0_ & ~0x00000001);
          activity_ = 0;
          onChanged();
          return this;
        }

        // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_UnitEvent.FadeGesture)
      }

      static {
        defaultInstance = new FadeGesture(true);
        defaultInstance.initFields();
      }

      // @@protoc_insertion_point(class_scope:CDOTAUserMsg_UnitEvent.FadeGesture)
    }

    private int bitField0_;
    public static final int MSG_TYPE_FIELD_NUMBER = 1;
    private skadistats.clarity.wire.common.proto.DotaUserMessages.EDotaEntityMessages msgType_;
    /**
     * required .EDotaEntityMessages msg_type = 1 [default = DOTA_UNIT_SPEECH];
     */
    public boolean hasMsgType() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * required .EDotaEntityMessages msg_type = 1 [default = DOTA_UNIT_SPEECH];
     */
    public skadistats.clarity.wire.common.proto.DotaUserMessages.EDotaEntityMessages getMsgType() {
      return msgType_;
    }

    public static final int ENTITY_INDEX_FIELD_NUMBER = 2;
    private int entityIndex_;
    /**
     * required int32 entity_index = 2;
     */
    public boolean hasEntityIndex() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * required int32 entity_index = 2;
     */
    public int getEntityIndex() {
      return entityIndex_;
    }

    public static final int SPEECH_FIELD_NUMBER = 3;
    private skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.Speech speech_;
    /**
     * optional .CDOTAUserMsg_UnitEvent.Speech speech = 3;
     */
    public boolean hasSpeech() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional .CDOTAUserMsg_UnitEvent.Speech speech = 3;
     */
    public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.Speech getSpeech() {
      return speech_;
    }
    /**
     * optional .CDOTAUserMsg_UnitEvent.Speech speech = 3;
     */
    public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.SpeechOrBuilder getSpeechOrBuilder() {
      return speech_;
    }

    public static final int SPEECH_MUTE_FIELD_NUMBER = 4;
    private skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.SpeechMute speechMute_;
    /**
     * optional .CDOTAUserMsg_UnitEvent.SpeechMute speech_mute = 4;
     */
    public boolean hasSpeechMute() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional .CDOTAUserMsg_UnitEvent.SpeechMute speech_mute = 4;
     */
    public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.SpeechMute getSpeechMute() {
      return speechMute_;
    }
    /**
     * optional .CDOTAUserMsg_UnitEvent.SpeechMute speech_mute = 4;
     */
    public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.SpeechMuteOrBuilder getSpeechMuteOrBuilder() {
      return speechMute_;
    }

    public static final int ADD_GESTURE_FIELD_NUMBER = 5;
    private skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.AddGesture addGesture_;
    /**
     * optional .CDOTAUserMsg_UnitEvent.AddGesture add_gesture = 5;
     */
    public boolean hasAddGesture() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * optional .CDOTAUserMsg_UnitEvent.AddGesture add_gesture = 5;
     */
    public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.AddGesture getAddGesture() {
      return addGesture_;
    }
    /**
     * optional .CDOTAUserMsg_UnitEvent.AddGesture add_gesture = 5;
     */
    public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.AddGestureOrBuilder getAddGestureOrBuilder() {
      return addGesture_;
    }

    public static final int REMOVE_GESTURE_FIELD_NUMBER = 6;
    private skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.RemoveGesture removeGesture_;
    /**
     * optional .CDOTAUserMsg_UnitEvent.RemoveGesture remove_gesture = 6;
     */
    public boolean hasRemoveGesture() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     * optional .CDOTAUserMsg_UnitEvent.RemoveGesture remove_gesture = 6;
     */
    public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.RemoveGesture getRemoveGesture() {
      return removeGesture_;
    }
    /**
     * optional .CDOTAUserMsg_UnitEvent.RemoveGesture remove_gesture = 6;
     */
    public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.RemoveGestureOrBuilder getRemoveGestureOrBuilder() {
      return removeGesture_;
    }

    public static final int BLOOD_IMPACT_FIELD_NUMBER = 7;
    private skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.BloodImpact bloodImpact_;
    /**
     * optional .CDOTAUserMsg_UnitEvent.BloodImpact blood_impact = 7;
     */
    public boolean hasBloodImpact() {
      return ((bitField0_ & 0x00000040) == 0x00000040);
    }
    /**
     * optional .CDOTAUserMsg_UnitEvent.BloodImpact blood_impact = 7;
     */
    public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.BloodImpact getBloodImpact() {
      return bloodImpact_;
    }
    /**
     * optional .CDOTAUserMsg_UnitEvent.BloodImpact blood_impact = 7;
     */
    public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.BloodImpactOrBuilder getBloodImpactOrBuilder() {
      return bloodImpact_;
    }

    public static final int FADE_GESTURE_FIELD_NUMBER = 8;
    private skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.FadeGesture fadeGesture_;
    /**
     * optional .CDOTAUserMsg_UnitEvent.FadeGesture fade_gesture = 8;
     */
    public boolean hasFadeGesture() {
      return ((bitField0_ & 0x00000080) == 0x00000080);
    }
    /**
     * optional .CDOTAUserMsg_UnitEvent.FadeGesture fade_gesture = 8;
     */
    public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.FadeGesture getFadeGesture() {
      return fadeGesture_;
    }
    /**
     * optional .CDOTAUserMsg_UnitEvent.FadeGesture fade_gesture = 8;
     */
    public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.FadeGestureOrBuilder getFadeGestureOrBuilder() {
      return fadeGesture_;
    }

    public static final int SPEECH_MATCH_ON_CLIENT_FIELD_NUMBER = 9;
    private skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTASpeechMatchOnClient speechMatchOnClient_;
    /**
     * optional .CDOTASpeechMatchOnClient speech_match_on_client = 9;
     */
    public boolean hasSpeechMatchOnClient() {
      return ((bitField0_ & 0x00000100) == 0x00000100);
    }
    /**
     * optional .CDOTASpeechMatchOnClient speech_match_on_client = 9;
     */
    public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTASpeechMatchOnClient getSpeechMatchOnClient() {
      return speechMatchOnClient_;
    }
    /**
     * optional .CDOTASpeechMatchOnClient speech_match_on_client = 9;
     */
    public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTASpeechMatchOnClientOrBuilder getSpeechMatchOnClientOrBuilder() {
      return speechMatchOnClient_;
    }

    private void initFields() {
      msgType_ = skadistats.clarity.wire.common.proto.DotaUserMessages.EDotaEntityMessages.DOTA_UNIT_SPEECH;
      entityIndex_ = 0;
      speech_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.Speech.getDefaultInstance();
      speechMute_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.SpeechMute.getDefaultInstance();
      addGesture_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.AddGesture.getDefaultInstance();
      removeGesture_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.RemoveGesture.getDefaultInstance();
      bloodImpact_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.BloodImpact.getDefaultInstance();
      fadeGesture_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.FadeGesture.getDefaultInstance();
      speechMatchOnClient_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTASpeechMatchOnClient.getDefaultInstance();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasMsgType()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasEntityIndex()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (hasSpeechMatchOnClient()) {
        if (!getSpeechMatchOnClient().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeEnum(1, msgType_.getNumber());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, entityIndex_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeMessage(3, speech_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeMessage(4, speechMute_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeMessage(5, addGesture_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeMessage(6, removeGesture_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        output.writeMessage(7, bloodImpact_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        output.writeMessage(8, fadeGesture_);
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        output.writeMessage(9, speechMatchOnClient_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(1, msgType_.getNumber());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, entityIndex_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, speech_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, speechMute_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(5, addGesture_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(6, removeGesture_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(7, bloodImpact_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(8, fadeGesture_);
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(9, speechMatchOnClient_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_UnitEvent}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_UnitEvent)
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEventOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_UnitEvent_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_UnitEvent_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getSpeechFieldBuilder();
          getSpeechMuteFieldBuilder();
          getAddGestureFieldBuilder();
          getRemoveGestureFieldBuilder();
          getBloodImpactFieldBuilder();
          getFadeGestureFieldBuilder();
          getSpeechMatchOnClientFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        msgType_ = skadistats.clarity.wire.common.proto.DotaUserMessages.EDotaEntityMessages.DOTA_UNIT_SPEECH;
        bitField0_ = (bitField0_ & ~0x00000001);
        entityIndex_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        if (speechBuilder_ == null) {
          speech_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.Speech.getDefaultInstance();
        } else {
          speechBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        if (speechMuteBuilder_ == null) {
          speechMute_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.SpeechMute.getDefaultInstance();
        } else {
          speechMuteBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000008);
        if (addGestureBuilder_ == null) {
          addGesture_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.AddGesture.getDefaultInstance();
        } else {
          addGestureBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000010);
        if (removeGestureBuilder_ == null) {
          removeGesture_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.RemoveGesture.getDefaultInstance();
        } else {
          removeGestureBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000020);
        if (bloodImpactBuilder_ == null) {
          bloodImpact_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.BloodImpact.getDefaultInstance();
        } else {
          bloodImpactBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000040);
        if (fadeGestureBuilder_ == null) {
          fadeGesture_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.FadeGesture.getDefaultInstance();
        } else {
          fadeGestureBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000080);
        if (speechMatchOnClientBuilder_ == null) {
          speechMatchOnClient_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTASpeechMatchOnClient.getDefaultInstance();
        } else {
          speechMatchOnClientBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000100);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_UnitEvent_descriptor;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent build() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent buildPartial() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.msgType_ = msgType_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.entityIndex_ = entityIndex_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        if (speechBuilder_ == null) {
          result.speech_ = speech_;
        } else {
          result.speech_ = speechBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        if (speechMuteBuilder_ == null) {
          result.speechMute_ = speechMute_;
        } else {
          result.speechMute_ = speechMuteBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        if (addGestureBuilder_ == null) {
          result.addGesture_ = addGesture_;
        } else {
          result.addGesture_ = addGestureBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        if (removeGestureBuilder_ == null) {
          result.removeGesture_ = removeGesture_;
        } else {
          result.removeGesture_ = removeGestureBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
          to_bitField0_ |= 0x00000040;
        }
        if (bloodImpactBuilder_ == null) {
          result.bloodImpact_ = bloodImpact_;
        } else {
          result.bloodImpact_ = bloodImpactBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
          to_bitField0_ |= 0x00000080;
        }
        if (fadeGestureBuilder_ == null) {
          result.fadeGesture_ = fadeGesture_;
        } else {
          result.fadeGesture_ = fadeGestureBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000100) == 0x00000100)) {
          to_bitField0_ |= 0x00000100;
        }
        if (speechMatchOnClientBuilder_ == null) {
          result.speechMatchOnClient_ = speechMatchOnClient_;
        } else {
          result.speechMatchOnClient_ = speechMatchOnClientBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent) {
          return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent other) {
        if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.getDefaultInstance()) return this;
        if (other.hasMsgType()) {
          setMsgType(other.getMsgType());
        }
        if (other.hasEntityIndex()) {
          setEntityIndex(other.getEntityIndex());
        }
        if (other.hasSpeech()) {
          mergeSpeech(other.getSpeech());
        }
        if (other.hasSpeechMute()) {
          mergeSpeechMute(other.getSpeechMute());
        }
        if (other.hasAddGesture()) {
          mergeAddGesture(other.getAddGesture());
        }
        if (other.hasRemoveGesture()) {
          mergeRemoveGesture(other.getRemoveGesture());
        }
        if (other.hasBloodImpact()) {
          mergeBloodImpact(other.getBloodImpact());
        }
        if (other.hasFadeGesture()) {
          mergeFadeGesture(other.getFadeGesture());
        }
        if (other.hasSpeechMatchOnClient()) {
          mergeSpeechMatchOnClient(other.getSpeechMatchOnClient());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasMsgType()) {
          
          return false;
        }
        if (!hasEntityIndex()) {
          
          return false;
        }
        if (hasSpeechMatchOnClient()) {
          if (!getSpeechMatchOnClient().isInitialized()) {
            
            return false;
          }
        }
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private skadistats.clarity.wire.common.proto.DotaUserMessages.EDotaEntityMessages msgType_ = skadistats.clarity.wire.common.proto.DotaUserMessages.EDotaEntityMessages.DOTA_UNIT_SPEECH;
      /**
       * required .EDotaEntityMessages msg_type = 1 [default = DOTA_UNIT_SPEECH];
       */
      public boolean hasMsgType() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * required .EDotaEntityMessages msg_type = 1 [default = DOTA_UNIT_SPEECH];
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.EDotaEntityMessages getMsgType() {
        return msgType_;
      }
      /**
       * required .EDotaEntityMessages msg_type = 1 [default = DOTA_UNIT_SPEECH];
       */
      public Builder setMsgType(skadistats.clarity.wire.common.proto.DotaUserMessages.EDotaEntityMessages value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        msgType_ = value;
        onChanged();
        return this;
      }
      /**
       * required .EDotaEntityMessages msg_type = 1 [default = DOTA_UNIT_SPEECH];
       */
      public Builder clearMsgType() {
        bitField0_ = (bitField0_ & ~0x00000001);
        msgType_ = skadistats.clarity.wire.common.proto.DotaUserMessages.EDotaEntityMessages.DOTA_UNIT_SPEECH;
        onChanged();
        return this;
      }

      private int entityIndex_ ;
      /**
       * required int32 entity_index = 2;
       */
      public boolean hasEntityIndex() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * required int32 entity_index = 2;
       */
      public int getEntityIndex() {
        return entityIndex_;
      }
      /**
       * required int32 entity_index = 2;
       */
      public Builder setEntityIndex(int value) {
        bitField0_ |= 0x00000002;
        entityIndex_ = value;
        onChanged();
        return this;
      }
      /**
       * required int32 entity_index = 2;
       */
      public Builder clearEntityIndex() {
        bitField0_ = (bitField0_ & ~0x00000002);
        entityIndex_ = 0;
        onChanged();
        return this;
      }

      private skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.Speech speech_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.Speech.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.Speech, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.Speech.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.SpeechOrBuilder> speechBuilder_;
      /**
       * optional .CDOTAUserMsg_UnitEvent.Speech speech = 3;
       */
      public boolean hasSpeech() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.Speech speech = 3;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.Speech getSpeech() {
        if (speechBuilder_ == null) {
          return speech_;
        } else {
          return speechBuilder_.getMessage();
        }
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.Speech speech = 3;
       */
      public Builder setSpeech(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.Speech value) {
        if (speechBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          speech_ = value;
          onChanged();
        } else {
          speechBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.Speech speech = 3;
       */
      public Builder setSpeech(
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.Speech.Builder builderForValue) {
        if (speechBuilder_ == null) {
          speech_ = builderForValue.build();
          onChanged();
        } else {
          speechBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.Speech speech = 3;
       */
      public Builder mergeSpeech(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.Speech value) {
        if (speechBuilder_ == null) {
          if (((bitField0_ & 0x00000004) == 0x00000004) &&
              speech_ != skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.Speech.getDefaultInstance()) {
            speech_ =
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.Speech.newBuilder(speech_).mergeFrom(value).buildPartial();
          } else {
            speech_ = value;
          }
          onChanged();
        } else {
          speechBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.Speech speech = 3;
       */
      public Builder clearSpeech() {
        if (speechBuilder_ == null) {
          speech_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.Speech.getDefaultInstance();
          onChanged();
        } else {
          speechBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.Speech speech = 3;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.Speech.Builder getSpeechBuilder() {
        bitField0_ |= 0x00000004;
        onChanged();
        return getSpeechFieldBuilder().getBuilder();
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.Speech speech = 3;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.SpeechOrBuilder getSpeechOrBuilder() {
        if (speechBuilder_ != null) {
          return speechBuilder_.getMessageOrBuilder();
        } else {
          return speech_;
        }
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.Speech speech = 3;
       */
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.Speech, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.Speech.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.SpeechOrBuilder> 
          getSpeechFieldBuilder() {
        if (speechBuilder_ == null) {
          speechBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.Speech, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.Speech.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.SpeechOrBuilder>(
                  getSpeech(),
                  getParentForChildren(),
                  isClean());
          speech_ = null;
        }
        return speechBuilder_;
      }

      private skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.SpeechMute speechMute_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.SpeechMute.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.SpeechMute, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.SpeechMute.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.SpeechMuteOrBuilder> speechMuteBuilder_;
      /**
       * optional .CDOTAUserMsg_UnitEvent.SpeechMute speech_mute = 4;
       */
      public boolean hasSpeechMute() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.SpeechMute speech_mute = 4;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.SpeechMute getSpeechMute() {
        if (speechMuteBuilder_ == null) {
          return speechMute_;
        } else {
          return speechMuteBuilder_.getMessage();
        }
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.SpeechMute speech_mute = 4;
       */
      public Builder setSpeechMute(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.SpeechMute value) {
        if (speechMuteBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          speechMute_ = value;
          onChanged();
        } else {
          speechMuteBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.SpeechMute speech_mute = 4;
       */
      public Builder setSpeechMute(
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.SpeechMute.Builder builderForValue) {
        if (speechMuteBuilder_ == null) {
          speechMute_ = builderForValue.build();
          onChanged();
        } else {
          speechMuteBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.SpeechMute speech_mute = 4;
       */
      public Builder mergeSpeechMute(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.SpeechMute value) {
        if (speechMuteBuilder_ == null) {
          if (((bitField0_ & 0x00000008) == 0x00000008) &&
              speechMute_ != skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.SpeechMute.getDefaultInstance()) {
            speechMute_ =
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.SpeechMute.newBuilder(speechMute_).mergeFrom(value).buildPartial();
          } else {
            speechMute_ = value;
          }
          onChanged();
        } else {
          speechMuteBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.SpeechMute speech_mute = 4;
       */
      public Builder clearSpeechMute() {
        if (speechMuteBuilder_ == null) {
          speechMute_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.SpeechMute.getDefaultInstance();
          onChanged();
        } else {
          speechMuteBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.SpeechMute speech_mute = 4;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.SpeechMute.Builder getSpeechMuteBuilder() {
        bitField0_ |= 0x00000008;
        onChanged();
        return getSpeechMuteFieldBuilder().getBuilder();
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.SpeechMute speech_mute = 4;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.SpeechMuteOrBuilder getSpeechMuteOrBuilder() {
        if (speechMuteBuilder_ != null) {
          return speechMuteBuilder_.getMessageOrBuilder();
        } else {
          return speechMute_;
        }
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.SpeechMute speech_mute = 4;
       */
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.SpeechMute, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.SpeechMute.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.SpeechMuteOrBuilder> 
          getSpeechMuteFieldBuilder() {
        if (speechMuteBuilder_ == null) {
          speechMuteBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.SpeechMute, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.SpeechMute.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.SpeechMuteOrBuilder>(
                  getSpeechMute(),
                  getParentForChildren(),
                  isClean());
          speechMute_ = null;
        }
        return speechMuteBuilder_;
      }

      private skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.AddGesture addGesture_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.AddGesture.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.AddGesture, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.AddGesture.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.AddGestureOrBuilder> addGestureBuilder_;
      /**
       * optional .CDOTAUserMsg_UnitEvent.AddGesture add_gesture = 5;
       */
      public boolean hasAddGesture() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.AddGesture add_gesture = 5;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.AddGesture getAddGesture() {
        if (addGestureBuilder_ == null) {
          return addGesture_;
        } else {
          return addGestureBuilder_.getMessage();
        }
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.AddGesture add_gesture = 5;
       */
      public Builder setAddGesture(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.AddGesture value) {
        if (addGestureBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          addGesture_ = value;
          onChanged();
        } else {
          addGestureBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.AddGesture add_gesture = 5;
       */
      public Builder setAddGesture(
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.AddGesture.Builder builderForValue) {
        if (addGestureBuilder_ == null) {
          addGesture_ = builderForValue.build();
          onChanged();
        } else {
          addGestureBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.AddGesture add_gesture = 5;
       */
      public Builder mergeAddGesture(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.AddGesture value) {
        if (addGestureBuilder_ == null) {
          if (((bitField0_ & 0x00000010) == 0x00000010) &&
              addGesture_ != skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.AddGesture.getDefaultInstance()) {
            addGesture_ =
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.AddGesture.newBuilder(addGesture_).mergeFrom(value).buildPartial();
          } else {
            addGesture_ = value;
          }
          onChanged();
        } else {
          addGestureBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.AddGesture add_gesture = 5;
       */
      public Builder clearAddGesture() {
        if (addGestureBuilder_ == null) {
          addGesture_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.AddGesture.getDefaultInstance();
          onChanged();
        } else {
          addGestureBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.AddGesture add_gesture = 5;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.AddGesture.Builder getAddGestureBuilder() {
        bitField0_ |= 0x00000010;
        onChanged();
        return getAddGestureFieldBuilder().getBuilder();
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.AddGesture add_gesture = 5;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.AddGestureOrBuilder getAddGestureOrBuilder() {
        if (addGestureBuilder_ != null) {
          return addGestureBuilder_.getMessageOrBuilder();
        } else {
          return addGesture_;
        }
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.AddGesture add_gesture = 5;
       */
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.AddGesture, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.AddGesture.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.AddGestureOrBuilder> 
          getAddGestureFieldBuilder() {
        if (addGestureBuilder_ == null) {
          addGestureBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.AddGesture, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.AddGesture.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.AddGestureOrBuilder>(
                  getAddGesture(),
                  getParentForChildren(),
                  isClean());
          addGesture_ = null;
        }
        return addGestureBuilder_;
      }

      private skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.RemoveGesture removeGesture_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.RemoveGesture.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.RemoveGesture, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.RemoveGesture.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.RemoveGestureOrBuilder> removeGestureBuilder_;
      /**
       * optional .CDOTAUserMsg_UnitEvent.RemoveGesture remove_gesture = 6;
       */
      public boolean hasRemoveGesture() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.RemoveGesture remove_gesture = 6;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.RemoveGesture getRemoveGesture() {
        if (removeGestureBuilder_ == null) {
          return removeGesture_;
        } else {
          return removeGestureBuilder_.getMessage();
        }
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.RemoveGesture remove_gesture = 6;
       */
      public Builder setRemoveGesture(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.RemoveGesture value) {
        if (removeGestureBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          removeGesture_ = value;
          onChanged();
        } else {
          removeGestureBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000020;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.RemoveGesture remove_gesture = 6;
       */
      public Builder setRemoveGesture(
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.RemoveGesture.Builder builderForValue) {
        if (removeGestureBuilder_ == null) {
          removeGesture_ = builderForValue.build();
          onChanged();
        } else {
          removeGestureBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000020;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.RemoveGesture remove_gesture = 6;
       */
      public Builder mergeRemoveGesture(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.RemoveGesture value) {
        if (removeGestureBuilder_ == null) {
          if (((bitField0_ & 0x00000020) == 0x00000020) &&
              removeGesture_ != skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.RemoveGesture.getDefaultInstance()) {
            removeGesture_ =
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.RemoveGesture.newBuilder(removeGesture_).mergeFrom(value).buildPartial();
          } else {
            removeGesture_ = value;
          }
          onChanged();
        } else {
          removeGestureBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000020;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.RemoveGesture remove_gesture = 6;
       */
      public Builder clearRemoveGesture() {
        if (removeGestureBuilder_ == null) {
          removeGesture_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.RemoveGesture.getDefaultInstance();
          onChanged();
        } else {
          removeGestureBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000020);
        return this;
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.RemoveGesture remove_gesture = 6;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.RemoveGesture.Builder getRemoveGestureBuilder() {
        bitField0_ |= 0x00000020;
        onChanged();
        return getRemoveGestureFieldBuilder().getBuilder();
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.RemoveGesture remove_gesture = 6;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.RemoveGestureOrBuilder getRemoveGestureOrBuilder() {
        if (removeGestureBuilder_ != null) {
          return removeGestureBuilder_.getMessageOrBuilder();
        } else {
          return removeGesture_;
        }
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.RemoveGesture remove_gesture = 6;
       */
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.RemoveGesture, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.RemoveGesture.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.RemoveGestureOrBuilder> 
          getRemoveGestureFieldBuilder() {
        if (removeGestureBuilder_ == null) {
          removeGestureBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.RemoveGesture, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.RemoveGesture.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.RemoveGestureOrBuilder>(
                  getRemoveGesture(),
                  getParentForChildren(),
                  isClean());
          removeGesture_ = null;
        }
        return removeGestureBuilder_;
      }

      private skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.BloodImpact bloodImpact_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.BloodImpact.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.BloodImpact, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.BloodImpact.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.BloodImpactOrBuilder> bloodImpactBuilder_;
      /**
       * optional .CDOTAUserMsg_UnitEvent.BloodImpact blood_impact = 7;
       */
      public boolean hasBloodImpact() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.BloodImpact blood_impact = 7;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.BloodImpact getBloodImpact() {
        if (bloodImpactBuilder_ == null) {
          return bloodImpact_;
        } else {
          return bloodImpactBuilder_.getMessage();
        }
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.BloodImpact blood_impact = 7;
       */
      public Builder setBloodImpact(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.BloodImpact value) {
        if (bloodImpactBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          bloodImpact_ = value;
          onChanged();
        } else {
          bloodImpactBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000040;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.BloodImpact blood_impact = 7;
       */
      public Builder setBloodImpact(
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.BloodImpact.Builder builderForValue) {
        if (bloodImpactBuilder_ == null) {
          bloodImpact_ = builderForValue.build();
          onChanged();
        } else {
          bloodImpactBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000040;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.BloodImpact blood_impact = 7;
       */
      public Builder mergeBloodImpact(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.BloodImpact value) {
        if (bloodImpactBuilder_ == null) {
          if (((bitField0_ & 0x00000040) == 0x00000040) &&
              bloodImpact_ != skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.BloodImpact.getDefaultInstance()) {
            bloodImpact_ =
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.BloodImpact.newBuilder(bloodImpact_).mergeFrom(value).buildPartial();
          } else {
            bloodImpact_ = value;
          }
          onChanged();
        } else {
          bloodImpactBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000040;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.BloodImpact blood_impact = 7;
       */
      public Builder clearBloodImpact() {
        if (bloodImpactBuilder_ == null) {
          bloodImpact_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.BloodImpact.getDefaultInstance();
          onChanged();
        } else {
          bloodImpactBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000040);
        return this;
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.BloodImpact blood_impact = 7;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.BloodImpact.Builder getBloodImpactBuilder() {
        bitField0_ |= 0x00000040;
        onChanged();
        return getBloodImpactFieldBuilder().getBuilder();
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.BloodImpact blood_impact = 7;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.BloodImpactOrBuilder getBloodImpactOrBuilder() {
        if (bloodImpactBuilder_ != null) {
          return bloodImpactBuilder_.getMessageOrBuilder();
        } else {
          return bloodImpact_;
        }
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.BloodImpact blood_impact = 7;
       */
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.BloodImpact, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.BloodImpact.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.BloodImpactOrBuilder> 
          getBloodImpactFieldBuilder() {
        if (bloodImpactBuilder_ == null) {
          bloodImpactBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.BloodImpact, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.BloodImpact.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.BloodImpactOrBuilder>(
                  getBloodImpact(),
                  getParentForChildren(),
                  isClean());
          bloodImpact_ = null;
        }
        return bloodImpactBuilder_;
      }

      private skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.FadeGesture fadeGesture_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.FadeGesture.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.FadeGesture, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.FadeGesture.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.FadeGestureOrBuilder> fadeGestureBuilder_;
      /**
       * optional .CDOTAUserMsg_UnitEvent.FadeGesture fade_gesture = 8;
       */
      public boolean hasFadeGesture() {
        return ((bitField0_ & 0x00000080) == 0x00000080);
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.FadeGesture fade_gesture = 8;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.FadeGesture getFadeGesture() {
        if (fadeGestureBuilder_ == null) {
          return fadeGesture_;
        } else {
          return fadeGestureBuilder_.getMessage();
        }
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.FadeGesture fade_gesture = 8;
       */
      public Builder setFadeGesture(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.FadeGesture value) {
        if (fadeGestureBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          fadeGesture_ = value;
          onChanged();
        } else {
          fadeGestureBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000080;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.FadeGesture fade_gesture = 8;
       */
      public Builder setFadeGesture(
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.FadeGesture.Builder builderForValue) {
        if (fadeGestureBuilder_ == null) {
          fadeGesture_ = builderForValue.build();
          onChanged();
        } else {
          fadeGestureBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000080;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.FadeGesture fade_gesture = 8;
       */
      public Builder mergeFadeGesture(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.FadeGesture value) {
        if (fadeGestureBuilder_ == null) {
          if (((bitField0_ & 0x00000080) == 0x00000080) &&
              fadeGesture_ != skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.FadeGesture.getDefaultInstance()) {
            fadeGesture_ =
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.FadeGesture.newBuilder(fadeGesture_).mergeFrom(value).buildPartial();
          } else {
            fadeGesture_ = value;
          }
          onChanged();
        } else {
          fadeGestureBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000080;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.FadeGesture fade_gesture = 8;
       */
      public Builder clearFadeGesture() {
        if (fadeGestureBuilder_ == null) {
          fadeGesture_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.FadeGesture.getDefaultInstance();
          onChanged();
        } else {
          fadeGestureBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000080);
        return this;
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.FadeGesture fade_gesture = 8;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.FadeGesture.Builder getFadeGestureBuilder() {
        bitField0_ |= 0x00000080;
        onChanged();
        return getFadeGestureFieldBuilder().getBuilder();
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.FadeGesture fade_gesture = 8;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.FadeGestureOrBuilder getFadeGestureOrBuilder() {
        if (fadeGestureBuilder_ != null) {
          return fadeGestureBuilder_.getMessageOrBuilder();
        } else {
          return fadeGesture_;
        }
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.FadeGesture fade_gesture = 8;
       */
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.FadeGesture, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.FadeGesture.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.FadeGestureOrBuilder> 
          getFadeGestureFieldBuilder() {
        if (fadeGestureBuilder_ == null) {
          fadeGestureBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.FadeGesture, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.FadeGesture.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UnitEvent.FadeGestureOrBuilder>(
                  getFadeGesture(),
                  getParentForChildren(),
                  isClean());
          fadeGesture_ = null;
        }
        return fadeGestureBuilder_;
      }

      private skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTASpeechMatchOnClient speechMatchOnClient_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTASpeechMatchOnClient.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTASpeechMatchOnClient, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTASpeechMatchOnClient.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTASpeechMatchOnClientOrBuilder> speechMatchOnClientBuilder_;
      /**
       * optional .CDOTASpeechMatchOnClient speech_match_on_client = 9;
       */
      public boolean hasSpeechMatchOnClient() {
        return ((bitField0_ & 0x00000100) == 0x00000100);
      }
      /**
       * optional .CDOTASpeechMatchOnClient speech_match_on_client = 9;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTASpeechMatchOnClient getSpeechMatchOnClient() {
        if (speechMatchOnClientBuilder_ == null) {
          return speechMatchOnClient_;
        } else {
          return speechMatchOnClientBuilder_.getMessage();
        }
      }
      /**
       * optional .CDOTASpeechMatchOnClient speech_match_on_client = 9;
       */
      public Builder setSpeechMatchOnClient(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTASpeechMatchOnClient value) {
        if (speechMatchOnClientBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          speechMatchOnClient_ = value;
          onChanged();
        } else {
          speechMatchOnClientBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000100;
        return this;
      }
      /**
       * optional .CDOTASpeechMatchOnClient speech_match_on_client = 9;
       */
      public Builder setSpeechMatchOnClient(
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTASpeechMatchOnClient.Builder builderForValue) {
        if (speechMatchOnClientBuilder_ == null) {
          speechMatchOnClient_ = builderForValue.build();
          onChanged();
        } else {
          speechMatchOnClientBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000100;
        return this;
      }
      /**
       * optional .CDOTASpeechMatchOnClient speech_match_on_client = 9;
       */
      public Builder mergeSpeechMatchOnClient(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTASpeechMatchOnClient value) {
        if (speechMatchOnClientBuilder_ == null) {
          if (((bitField0_ & 0x00000100) == 0x00000100) &&
              speechMatchOnClient_ != skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTASpeechMatchOnClient.getDefaultInstance()) {
            speechMatchOnClient_ =
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTASpeechMatchOnClient.newBuilder(speechMatchOnClient_).mergeFrom(value).buildPartial();
          } else {
            speechMatchOnClient_ = value;
          }
          onChanged();
        } else {
          speechMatchOnClientBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000100;
        return this;
      }
      /**
       * optional .CDOTASpeechMatchOnClient speech_match_on_client = 9;
       */
      public Builder clearSpeechMatchOnClient() {
        if (speechMatchOnClientBuilder_ == null) {
          speechMatchOnClient_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTASpeechMatchOnClient.getDefaultInstance();
          onChanged();
        } else {
          speechMatchOnClientBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000100);
        return this;
      }
      /**
       * optional .CDOTASpeechMatchOnClient speech_match_on_client = 9;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTASpeechMatchOnClient.Builder getSpeechMatchOnClientBuilder() {
        bitField0_ |= 0x00000100;
        onChanged();
        return getSpeechMatchOnClientFieldBuilder().getBuilder();
      }
      /**
       * optional .CDOTASpeechMatchOnClient speech_match_on_client = 9;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTASpeechMatchOnClientOrBuilder getSpeechMatchOnClientOrBuilder() {
        if (speechMatchOnClientBuilder_ != null) {
          return speechMatchOnClientBuilder_.getMessageOrBuilder();
        } else {
          return speechMatchOnClient_;
        }
      }
      /**
       * optional .CDOTASpeechMatchOnClient speech_match_on_client = 9;
       */
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTASpeechMatchOnClient, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTASpeechMatchOnClient.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTASpeechMatchOnClientOrBuilder> 
          getSpeechMatchOnClientFieldBuilder() {
        if (speechMatchOnClientBuilder_ == null) {
          speechMatchOnClientBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTASpeechMatchOnClient, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTASpeechMatchOnClient.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTASpeechMatchOnClientOrBuilder>(
                  getSpeechMatchOnClient(),
                  getParentForChildren(),
                  isClean());
          speechMatchOnClient_ = null;
        }
        return speechMatchOnClientBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_UnitEvent)
    }

    static {
      defaultInstance = new CDOTAUserMsg_UnitEvent(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_UnitEvent)
  }

  public interface CDOTAUserMsg_ItemPurchasedOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_ItemPurchased)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional int32 item_ability_id = 1;
     */
    boolean hasItemAbilityId();
    /**
     * optional int32 item_ability_id = 1;
     */
    int getItemAbilityId();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_ItemPurchased}
   */
  public static final class CDOTAUserMsg_ItemPurchased extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_ItemPurchased)
      CDOTAUserMsg_ItemPurchasedOrBuilder {
    // Use CDOTAUserMsg_ItemPurchased.newBuilder() to construct.
    private CDOTAUserMsg_ItemPurchased(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_ItemPurchased(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_ItemPurchased defaultInstance;
    public static CDOTAUserMsg_ItemPurchased getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_ItemPurchased getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_ItemPurchased(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              itemAbilityId_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ItemPurchased_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ItemPurchased_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ItemPurchased.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ItemPurchased.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_ItemPurchased parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_ItemPurchased(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int ITEM_ABILITY_ID_FIELD_NUMBER = 1;
    private int itemAbilityId_;
    /**
     * optional int32 item_ability_id = 1;
     */
    public boolean hasItemAbilityId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 item_ability_id = 1;
     */
    public int getItemAbilityId() {
      return itemAbilityId_;
    }

    private void initFields() {
      itemAbilityId_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, itemAbilityId_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, itemAbilityId_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ItemPurchased parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ItemPurchased parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ItemPurchased parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ItemPurchased parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ItemPurchased parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ItemPurchased parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ItemPurchased parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ItemPurchased parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ItemPurchased parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ItemPurchased parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ItemPurchased prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_ItemPurchased}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_ItemPurchased)
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ItemPurchasedOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ItemPurchased_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ItemPurchased_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ItemPurchased.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ItemPurchased.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ItemPurchased.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        itemAbilityId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ItemPurchased_descriptor;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ItemPurchased getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ItemPurchased.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ItemPurchased build() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ItemPurchased result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ItemPurchased buildPartial() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ItemPurchased result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ItemPurchased(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.itemAbilityId_ = itemAbilityId_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ItemPurchased) {
          return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ItemPurchased)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ItemPurchased other) {
        if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ItemPurchased.getDefaultInstance()) return this;
        if (other.hasItemAbilityId()) {
          setItemAbilityId(other.getItemAbilityId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ItemPurchased parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ItemPurchased) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int itemAbilityId_ ;
      /**
       * optional int32 item_ability_id = 1;
       */
      public boolean hasItemAbilityId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 item_ability_id = 1;
       */
      public int getItemAbilityId() {
        return itemAbilityId_;
      }
      /**
       * optional int32 item_ability_id = 1;
       */
      public Builder setItemAbilityId(int value) {
        bitField0_ |= 0x00000001;
        itemAbilityId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 item_ability_id = 1;
       */
      public Builder clearItemAbilityId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        itemAbilityId_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_ItemPurchased)
    }

    static {
      defaultInstance = new CDOTAUserMsg_ItemPurchased(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_ItemPurchased)
  }

  public interface CDOTAUserMsg_ItemSoldOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_ItemSold)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional int32 item_ability_id = 1;
     */
    boolean hasItemAbilityId();
    /**
     * optional int32 item_ability_id = 1;
     */
    int getItemAbilityId();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_ItemSold}
   */
  public static final class CDOTAUserMsg_ItemSold extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_ItemSold)
      CDOTAUserMsg_ItemSoldOrBuilder {
    // Use CDOTAUserMsg_ItemSold.newBuilder() to construct.
    private CDOTAUserMsg_ItemSold(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_ItemSold(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_ItemSold defaultInstance;
    public static CDOTAUserMsg_ItemSold getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_ItemSold getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_ItemSold(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              itemAbilityId_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ItemSold_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ItemSold_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ItemSold.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ItemSold.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_ItemSold parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_ItemSold(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int ITEM_ABILITY_ID_FIELD_NUMBER = 1;
    private int itemAbilityId_;
    /**
     * optional int32 item_ability_id = 1;
     */
    public boolean hasItemAbilityId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 item_ability_id = 1;
     */
    public int getItemAbilityId() {
      return itemAbilityId_;
    }

    private void initFields() {
      itemAbilityId_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, itemAbilityId_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, itemAbilityId_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ItemSold parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ItemSold parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ItemSold parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ItemSold parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ItemSold parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ItemSold parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ItemSold parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ItemSold parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ItemSold parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ItemSold parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ItemSold prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_ItemSold}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_ItemSold)
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ItemSoldOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ItemSold_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ItemSold_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ItemSold.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ItemSold.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ItemSold.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        itemAbilityId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ItemSold_descriptor;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ItemSold getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ItemSold.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ItemSold build() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ItemSold result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ItemSold buildPartial() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ItemSold result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ItemSold(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.itemAbilityId_ = itemAbilityId_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ItemSold) {
          return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ItemSold)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ItemSold other) {
        if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ItemSold.getDefaultInstance()) return this;
        if (other.hasItemAbilityId()) {
          setItemAbilityId(other.getItemAbilityId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ItemSold parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ItemSold) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int itemAbilityId_ ;
      /**
       * optional int32 item_ability_id = 1;
       */
      public boolean hasItemAbilityId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 item_ability_id = 1;
       */
      public int getItemAbilityId() {
        return itemAbilityId_;
      }
      /**
       * optional int32 item_ability_id = 1;
       */
      public Builder setItemAbilityId(int value) {
        bitField0_ |= 0x00000001;
        itemAbilityId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 item_ability_id = 1;
       */
      public Builder clearItemAbilityId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        itemAbilityId_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_ItemSold)
    }

    static {
      defaultInstance = new CDOTAUserMsg_ItemSold(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_ItemSold)
  }

  public interface CDOTAUserMsg_ParticleManagerOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_ParticleManager)
      com.google.protobuf.MessageOrBuilder {

    /**
     * required .DOTA_PARTICLE_MESSAGE type = 1 [default = DOTA_PARTICLE_MANAGER_EVENT_CREATE];
     */
    boolean hasType();
    /**
     * required .DOTA_PARTICLE_MESSAGE type = 1 [default = DOTA_PARTICLE_MANAGER_EVENT_CREATE];
     */
    skadistats.clarity.wire.common.proto.DotaUserMessages.DOTA_PARTICLE_MESSAGE getType();

    /**
     * required uint32 index = 2;
     */
    boolean hasIndex();
    /**
     * required uint32 index = 2;
     */
    int getIndex();

    /**
     * optional .CDOTAUserMsg_ParticleManager.ReleaseParticleIndex release_particle_index = 3;
     */
    boolean hasReleaseParticleIndex();
    /**
     * optional .CDOTAUserMsg_ParticleManager.ReleaseParticleIndex release_particle_index = 3;
     */
    skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndex getReleaseParticleIndex();
    /**
     * optional .CDOTAUserMsg_ParticleManager.ReleaseParticleIndex release_particle_index = 3;
     */
    skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndexOrBuilder getReleaseParticleIndexOrBuilder();

    /**
     * optional .CDOTAUserMsg_ParticleManager.CreateParticle create_particle = 4;
     */
    boolean hasCreateParticle();
    /**
     * optional .CDOTAUserMsg_ParticleManager.CreateParticle create_particle = 4;
     */
    skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.CreateParticle getCreateParticle();
    /**
     * optional .CDOTAUserMsg_ParticleManager.CreateParticle create_particle = 4;
     */
    skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.CreateParticleOrBuilder getCreateParticleOrBuilder();

    /**
     * optional .CDOTAUserMsg_ParticleManager.DestroyParticle destroy_particle = 5;
     */
    boolean hasDestroyParticle();
    /**
     * optional .CDOTAUserMsg_ParticleManager.DestroyParticle destroy_particle = 5;
     */
    skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticle getDestroyParticle();
    /**
     * optional .CDOTAUserMsg_ParticleManager.DestroyParticle destroy_particle = 5;
     */
    skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticleOrBuilder getDestroyParticleOrBuilder();

    /**
     * optional .CDOTAUserMsg_ParticleManager.DestroyParticleInvolving destroy_particle_involving = 6;
     */
    boolean hasDestroyParticleInvolving();
    /**
     * optional .CDOTAUserMsg_ParticleManager.DestroyParticleInvolving destroy_particle_involving = 6;
     */
    skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolving getDestroyParticleInvolving();
    /**
     * optional .CDOTAUserMsg_ParticleManager.DestroyParticleInvolving destroy_particle_involving = 6;
     */
    skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolvingOrBuilder getDestroyParticleInvolvingOrBuilder();

    /**
     * optional .CDOTAUserMsg_ParticleManager.UpdateParticle update_particle = 7;
     */
    boolean hasUpdateParticle();
    /**
     * optional .CDOTAUserMsg_ParticleManager.UpdateParticle update_particle = 7;
     */
    skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticle getUpdateParticle();
    /**
     * optional .CDOTAUserMsg_ParticleManager.UpdateParticle update_particle = 7;
     */
    skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrBuilder getUpdateParticleOrBuilder();

    /**
     * optional .CDOTAUserMsg_ParticleManager.UpdateParticleFwd update_particle_fwd = 8;
     */
    boolean hasUpdateParticleFwd();
    /**
     * optional .CDOTAUserMsg_ParticleManager.UpdateParticleFwd update_particle_fwd = 8;
     */
    skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwd getUpdateParticleFwd();
    /**
     * optional .CDOTAUserMsg_ParticleManager.UpdateParticleFwd update_particle_fwd = 8;
     */
    skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwdOrBuilder getUpdateParticleFwdOrBuilder();

    /**
     * optional .CDOTAUserMsg_ParticleManager.UpdateParticleOrient update_particle_orient = 9;
     */
    boolean hasUpdateParticleOrient();
    /**
     * optional .CDOTAUserMsg_ParticleManager.UpdateParticleOrient update_particle_orient = 9;
     */
    skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrient getUpdateParticleOrient();
    /**
     * optional .CDOTAUserMsg_ParticleManager.UpdateParticleOrient update_particle_orient = 9;
     */
    skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrientOrBuilder getUpdateParticleOrientOrBuilder();

    /**
     * optional .CDOTAUserMsg_ParticleManager.UpdateParticleFallback update_particle_fallback = 10;
     */
    boolean hasUpdateParticleFallback();
    /**
     * optional .CDOTAUserMsg_ParticleManager.UpdateParticleFallback update_particle_fallback = 10;
     */
    skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallback getUpdateParticleFallback();
    /**
     * optional .CDOTAUserMsg_ParticleManager.UpdateParticleFallback update_particle_fallback = 10;
     */
    skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallbackOrBuilder getUpdateParticleFallbackOrBuilder();

    /**
     * optional .CDOTAUserMsg_ParticleManager.UpdateParticleOffset update_particle_offset = 11;
     */
    boolean hasUpdateParticleOffset();
    /**
     * optional .CDOTAUserMsg_ParticleManager.UpdateParticleOffset update_particle_offset = 11;
     */
    skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffset getUpdateParticleOffset();
    /**
     * optional .CDOTAUserMsg_ParticleManager.UpdateParticleOffset update_particle_offset = 11;
     */
    skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffsetOrBuilder getUpdateParticleOffsetOrBuilder();

    /**
     * optional .CDOTAUserMsg_ParticleManager.UpdateParticleEnt update_particle_ent = 12;
     */
    boolean hasUpdateParticleEnt();
    /**
     * optional .CDOTAUserMsg_ParticleManager.UpdateParticleEnt update_particle_ent = 12;
     */
    skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleEnt getUpdateParticleEnt();
    /**
     * optional .CDOTAUserMsg_ParticleManager.UpdateParticleEnt update_particle_ent = 12;
     */
    skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleEntOrBuilder getUpdateParticleEntOrBuilder();

    /**
     * optional .CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw update_particle_should_draw = 14;
     */
    boolean hasUpdateParticleShouldDraw();
    /**
     * optional .CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw update_particle_should_draw = 14;
     */
    skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw getUpdateParticleShouldDraw();
    /**
     * optional .CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw update_particle_should_draw = 14;
     */
    skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDrawOrBuilder getUpdateParticleShouldDrawOrBuilder();

    /**
     * optional .CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen update_particle_set_frozen = 15;
     */
    boolean hasUpdateParticleSetFrozen();
    /**
     * optional .CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen update_particle_set_frozen = 15;
     */
    skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen getUpdateParticleSetFrozen();
    /**
     * optional .CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen update_particle_set_frozen = 15;
     */
    skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozenOrBuilder getUpdateParticleSetFrozenOrBuilder();

    /**
     * optional .CDOTAUserMsg_ParticleManager.ChangeControlPointAttachment change_control_point_attachment = 16;
     */
    boolean hasChangeControlPointAttachment();
    /**
     * optional .CDOTAUserMsg_ParticleManager.ChangeControlPointAttachment change_control_point_attachment = 16;
     */
    skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ChangeControlPointAttachment getChangeControlPointAttachment();
    /**
     * optional .CDOTAUserMsg_ParticleManager.ChangeControlPointAttachment change_control_point_attachment = 16;
     */
    skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ChangeControlPointAttachmentOrBuilder getChangeControlPointAttachmentOrBuilder();

    /**
     * optional .CDOTAUserMsg_ParticleManager.UpdateEntityPosition update_entity_position = 17;
     */
    boolean hasUpdateEntityPosition();
    /**
     * optional .CDOTAUserMsg_ParticleManager.UpdateEntityPosition update_entity_position = 17;
     */
    skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateEntityPosition getUpdateEntityPosition();
    /**
     * optional .CDOTAUserMsg_ParticleManager.UpdateEntityPosition update_entity_position = 17;
     */
    skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateEntityPositionOrBuilder getUpdateEntityPositionOrBuilder();

    /**
     * optional .CDOTAUserMsg_ParticleManager.SetParticleFoWProperties set_particle_fow_properties = 18;
     */
    boolean hasSetParticleFowProperties();
    /**
     * optional .CDOTAUserMsg_ParticleManager.SetParticleFoWProperties set_particle_fow_properties = 18;
     */
    skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleFoWProperties getSetParticleFowProperties();
    /**
     * optional .CDOTAUserMsg_ParticleManager.SetParticleFoWProperties set_particle_fow_properties = 18;
     */
    skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleFoWPropertiesOrBuilder getSetParticleFowPropertiesOrBuilder();

    /**
     * optional .CDOTAUserMsg_ParticleManager.SetParticleText set_particle_text = 19;
     */
    boolean hasSetParticleText();
    /**
     * optional .CDOTAUserMsg_ParticleManager.SetParticleText set_particle_text = 19;
     */
    skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleText getSetParticleText();
    /**
     * optional .CDOTAUserMsg_ParticleManager.SetParticleText set_particle_text = 19;
     */
    skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleTextOrBuilder getSetParticleTextOrBuilder();

    /**
     * optional .CDOTAUserMsg_ParticleManager.SetParticleShouldCheckFoW set_particle_should_check_fow = 20;
     */
    boolean hasSetParticleShouldCheckFow();
    /**
     * optional .CDOTAUserMsg_ParticleManager.SetParticleShouldCheckFoW set_particle_should_check_fow = 20;
     */
    skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleShouldCheckFoW getSetParticleShouldCheckFow();
    /**
     * optional .CDOTAUserMsg_ParticleManager.SetParticleShouldCheckFoW set_particle_should_check_fow = 20;
     */
    skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleShouldCheckFoWOrBuilder getSetParticleShouldCheckFowOrBuilder();

    /**
     * optional .CDOTAUserMsg_ParticleManager.SetControlPointModel set_control_point_model = 21;
     */
    boolean hasSetControlPointModel();
    /**
     * optional .CDOTAUserMsg_ParticleManager.SetControlPointModel set_control_point_model = 21;
     */
    skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointModel getSetControlPointModel();
    /**
     * optional .CDOTAUserMsg_ParticleManager.SetControlPointModel set_control_point_model = 21;
     */
    skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointModelOrBuilder getSetControlPointModelOrBuilder();

    /**
     * optional .CDOTAUserMsg_ParticleManager.SetControlPointSnapshot set_control_point_snapshot = 22;
     */
    boolean hasSetControlPointSnapshot();
    /**
     * optional .CDOTAUserMsg_ParticleManager.SetControlPointSnapshot set_control_point_snapshot = 22;
     */
    skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointSnapshot getSetControlPointSnapshot();
    /**
     * optional .CDOTAUserMsg_ParticleManager.SetControlPointSnapshot set_control_point_snapshot = 22;
     */
    skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointSnapshotOrBuilder getSetControlPointSnapshotOrBuilder();

    /**
     * optional .CDOTAUserMsg_ParticleManager.SetTextureAttribute set_texture_attribute = 23;
     */
    boolean hasSetTextureAttribute();
    /**
     * optional .CDOTAUserMsg_ParticleManager.SetTextureAttribute set_texture_attribute = 23;
     */
    skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetTextureAttribute getSetTextureAttribute();
    /**
     * optional .CDOTAUserMsg_ParticleManager.SetTextureAttribute set_texture_attribute = 23;
     */
    skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetTextureAttributeOrBuilder getSetTextureAttributeOrBuilder();

    /**
     * optional .CDOTAUserMsg_ParticleManager.SetSceneObjectGenericFlag set_scene_object_generic_flag = 24;
     */
    boolean hasSetSceneObjectGenericFlag();
    /**
     * optional .CDOTAUserMsg_ParticleManager.SetSceneObjectGenericFlag set_scene_object_generic_flag = 24;
     */
    skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectGenericFlag getSetSceneObjectGenericFlag();
    /**
     * optional .CDOTAUserMsg_ParticleManager.SetSceneObjectGenericFlag set_scene_object_generic_flag = 24;
     */
    skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectGenericFlagOrBuilder getSetSceneObjectGenericFlagOrBuilder();

    /**
     * optional .CDOTAUserMsg_ParticleManager.SetSceneObjectTintAndDesat set_scene_object_tint_and_desat = 25;
     */
    boolean hasSetSceneObjectTintAndDesat();
    /**
     * optional .CDOTAUserMsg_ParticleManager.SetSceneObjectTintAndDesat set_scene_object_tint_and_desat = 25;
     */
    skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectTintAndDesat getSetSceneObjectTintAndDesat();
    /**
     * optional .CDOTAUserMsg_ParticleManager.SetSceneObjectTintAndDesat set_scene_object_tint_and_desat = 25;
     */
    skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectTintAndDesatOrBuilder getSetSceneObjectTintAndDesatOrBuilder();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_ParticleManager}
   */
  public static final class CDOTAUserMsg_ParticleManager extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_ParticleManager)
      CDOTAUserMsg_ParticleManagerOrBuilder {
    // Use CDOTAUserMsg_ParticleManager.newBuilder() to construct.
    private CDOTAUserMsg_ParticleManager(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_ParticleManager(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_ParticleManager defaultInstance;
    public static CDOTAUserMsg_ParticleManager getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_ParticleManager getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_ParticleManager(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              int rawValue = input.readEnum();
              skadistats.clarity.wire.common.proto.DotaUserMessages.DOTA_PARTICLE_MESSAGE value = skadistats.clarity.wire.common.proto.DotaUserMessages.DOTA_PARTICLE_MESSAGE.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(1, rawValue);
              } else {
                bitField0_ |= 0x00000001;
                type_ = value;
              }
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              index_ = input.readUInt32();
              break;
            }
            case 26: {
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndex.Builder subBuilder = null;
              if (((bitField0_ & 0x00000004) == 0x00000004)) {
                subBuilder = releaseParticleIndex_.toBuilder();
              }
              releaseParticleIndex_ = input.readMessage(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndex.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(releaseParticleIndex_);
                releaseParticleIndex_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000004;
              break;
            }
            case 34: {
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.CreateParticle.Builder subBuilder = null;
              if (((bitField0_ & 0x00000008) == 0x00000008)) {
                subBuilder = createParticle_.toBuilder();
              }
              createParticle_ = input.readMessage(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.CreateParticle.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(createParticle_);
                createParticle_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000008;
              break;
            }
            case 42: {
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticle.Builder subBuilder = null;
              if (((bitField0_ & 0x00000010) == 0x00000010)) {
                subBuilder = destroyParticle_.toBuilder();
              }
              destroyParticle_ = input.readMessage(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticle.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(destroyParticle_);
                destroyParticle_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000010;
              break;
            }
            case 50: {
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolving.Builder subBuilder = null;
              if (((bitField0_ & 0x00000020) == 0x00000020)) {
                subBuilder = destroyParticleInvolving_.toBuilder();
              }
              destroyParticleInvolving_ = input.readMessage(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolving.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(destroyParticleInvolving_);
                destroyParticleInvolving_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000020;
              break;
            }
            case 58: {
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticle.Builder subBuilder = null;
              if (((bitField0_ & 0x00000040) == 0x00000040)) {
                subBuilder = updateParticle_.toBuilder();
              }
              updateParticle_ = input.readMessage(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticle.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(updateParticle_);
                updateParticle_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000040;
              break;
            }
            case 66: {
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwd.Builder subBuilder = null;
              if (((bitField0_ & 0x00000080) == 0x00000080)) {
                subBuilder = updateParticleFwd_.toBuilder();
              }
              updateParticleFwd_ = input.readMessage(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwd.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(updateParticleFwd_);
                updateParticleFwd_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000080;
              break;
            }
            case 74: {
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrient.Builder subBuilder = null;
              if (((bitField0_ & 0x00000100) == 0x00000100)) {
                subBuilder = updateParticleOrient_.toBuilder();
              }
              updateParticleOrient_ = input.readMessage(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrient.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(updateParticleOrient_);
                updateParticleOrient_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000100;
              break;
            }
            case 82: {
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallback.Builder subBuilder = null;
              if (((bitField0_ & 0x00000200) == 0x00000200)) {
                subBuilder = updateParticleFallback_.toBuilder();
              }
              updateParticleFallback_ = input.readMessage(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallback.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(updateParticleFallback_);
                updateParticleFallback_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000200;
              break;
            }
            case 90: {
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffset.Builder subBuilder = null;
              if (((bitField0_ & 0x00000400) == 0x00000400)) {
                subBuilder = updateParticleOffset_.toBuilder();
              }
              updateParticleOffset_ = input.readMessage(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffset.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(updateParticleOffset_);
                updateParticleOffset_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000400;
              break;
            }
            case 98: {
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleEnt.Builder subBuilder = null;
              if (((bitField0_ & 0x00000800) == 0x00000800)) {
                subBuilder = updateParticleEnt_.toBuilder();
              }
              updateParticleEnt_ = input.readMessage(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleEnt.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(updateParticleEnt_);
                updateParticleEnt_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000800;
              break;
            }
            case 114: {
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw.Builder subBuilder = null;
              if (((bitField0_ & 0x00001000) == 0x00001000)) {
                subBuilder = updateParticleShouldDraw_.toBuilder();
              }
              updateParticleShouldDraw_ = input.readMessage(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(updateParticleShouldDraw_);
                updateParticleShouldDraw_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00001000;
              break;
            }
            case 122: {
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen.Builder subBuilder = null;
              if (((bitField0_ & 0x00002000) == 0x00002000)) {
                subBuilder = updateParticleSetFrozen_.toBuilder();
              }
              updateParticleSetFrozen_ = input.readMessage(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(updateParticleSetFrozen_);
                updateParticleSetFrozen_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00002000;
              break;
            }
            case 130: {
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ChangeControlPointAttachment.Builder subBuilder = null;
              if (((bitField0_ & 0x00004000) == 0x00004000)) {
                subBuilder = changeControlPointAttachment_.toBuilder();
              }
              changeControlPointAttachment_ = input.readMessage(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ChangeControlPointAttachment.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(changeControlPointAttachment_);
                changeControlPointAttachment_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00004000;
              break;
            }
            case 138: {
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateEntityPosition.Builder subBuilder = null;
              if (((bitField0_ & 0x00008000) == 0x00008000)) {
                subBuilder = updateEntityPosition_.toBuilder();
              }
              updateEntityPosition_ = input.readMessage(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateEntityPosition.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(updateEntityPosition_);
                updateEntityPosition_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00008000;
              break;
            }
            case 146: {
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleFoWProperties.Builder subBuilder = null;
              if (((bitField0_ & 0x00010000) == 0x00010000)) {
                subBuilder = setParticleFowProperties_.toBuilder();
              }
              setParticleFowProperties_ = input.readMessage(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleFoWProperties.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(setParticleFowProperties_);
                setParticleFowProperties_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00010000;
              break;
            }
            case 154: {
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleText.Builder subBuilder = null;
              if (((bitField0_ & 0x00020000) == 0x00020000)) {
                subBuilder = setParticleText_.toBuilder();
              }
              setParticleText_ = input.readMessage(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleText.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(setParticleText_);
                setParticleText_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00020000;
              break;
            }
            case 162: {
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleShouldCheckFoW.Builder subBuilder = null;
              if (((bitField0_ & 0x00040000) == 0x00040000)) {
                subBuilder = setParticleShouldCheckFow_.toBuilder();
              }
              setParticleShouldCheckFow_ = input.readMessage(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleShouldCheckFoW.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(setParticleShouldCheckFow_);
                setParticleShouldCheckFow_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00040000;
              break;
            }
            case 170: {
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointModel.Builder subBuilder = null;
              if (((bitField0_ & 0x00080000) == 0x00080000)) {
                subBuilder = setControlPointModel_.toBuilder();
              }
              setControlPointModel_ = input.readMessage(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointModel.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(setControlPointModel_);
                setControlPointModel_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00080000;
              break;
            }
            case 178: {
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointSnapshot.Builder subBuilder = null;
              if (((bitField0_ & 0x00100000) == 0x00100000)) {
                subBuilder = setControlPointSnapshot_.toBuilder();
              }
              setControlPointSnapshot_ = input.readMessage(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointSnapshot.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(setControlPointSnapshot_);
                setControlPointSnapshot_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00100000;
              break;
            }
            case 186: {
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetTextureAttribute.Builder subBuilder = null;
              if (((bitField0_ & 0x00200000) == 0x00200000)) {
                subBuilder = setTextureAttribute_.toBuilder();
              }
              setTextureAttribute_ = input.readMessage(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetTextureAttribute.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(setTextureAttribute_);
                setTextureAttribute_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00200000;
              break;
            }
            case 194: {
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectGenericFlag.Builder subBuilder = null;
              if (((bitField0_ & 0x00400000) == 0x00400000)) {
                subBuilder = setSceneObjectGenericFlag_.toBuilder();
              }
              setSceneObjectGenericFlag_ = input.readMessage(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectGenericFlag.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(setSceneObjectGenericFlag_);
                setSceneObjectGenericFlag_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00400000;
              break;
            }
            case 202: {
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectTintAndDesat.Builder subBuilder = null;
              if (((bitField0_ & 0x00800000) == 0x00800000)) {
                subBuilder = setSceneObjectTintAndDesat_.toBuilder();
              }
              setSceneObjectTintAndDesat_ = input.readMessage(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectTintAndDesat.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(setSceneObjectTintAndDesat_);
                setSceneObjectTintAndDesat_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00800000;
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_ParticleManager parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_ParticleManager(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    public interface ReleaseParticleIndexOrBuilder extends
        // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_ParticleManager.ReleaseParticleIndex)
        com.google.protobuf.MessageOrBuilder {
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_ParticleManager.ReleaseParticleIndex}
     */
    public static final class ReleaseParticleIndex extends
        com.google.protobuf.GeneratedMessage implements
        // @@protoc_insertion_point(message_implements:CDOTAUserMsg_ParticleManager.ReleaseParticleIndex)
        ReleaseParticleIndexOrBuilder {
      // Use ReleaseParticleIndex.newBuilder() to construct.
      private ReleaseParticleIndex(com.google.protobuf.GeneratedMessage.Builder builder) {
        super(builder);
        this.unknownFields = builder.getUnknownFields();
      }
      private ReleaseParticleIndex(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

      private static final ReleaseParticleIndex defaultInstance;
      public static ReleaseParticleIndex getDefaultInstance() {
        return defaultInstance;
      }

      public ReleaseParticleIndex getDefaultInstanceForType() {
        return defaultInstance;
      }

      private final com.google.protobuf.UnknownFieldSet unknownFields;
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
          getUnknownFields() {
        return this.unknownFields;
      }
      private ReleaseParticleIndex(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        initFields();
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e.getMessage()).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_ReleaseParticleIndex_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_ReleaseParticleIndex_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndex.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndex.Builder.class);
      }

      public static com.google.protobuf.Parser PARSER =
          new com.google.protobuf.AbstractParser() {
        public ReleaseParticleIndex parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new ReleaseParticleIndex(input, extensionRegistry);
        }
      };

      @java.lang.Override
      public com.google.protobuf.Parser getParserForType() {
        return PARSER;
      }

      private void initFields() {
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        getUnknownFields().writeTo(output);
      }

      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;

        size = 0;
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.Object writeReplace()
          throws java.io.ObjectStreamException {
        return super.writeReplace();
      }

      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndex parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndex parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndex parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndex parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndex parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndex parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndex parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndex parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndex parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndex parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }

      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndex prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code CDOTAUserMsg_ParticleManager.ReleaseParticleIndex}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder implements
          // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_ParticleManager.ReleaseParticleIndex)
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndexOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_ReleaseParticleIndex_descriptor;
        }

        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_ReleaseParticleIndex_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndex.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndex.Builder.class);
        }

        // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndex.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          }
        }
        private static Builder create() {
          return new Builder();
        }

        public Builder clear() {
          super.clear();
          return this;
        }

        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }

        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_ReleaseParticleIndex_descriptor;
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndex getDefaultInstanceForType() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndex.getDefaultInstance();
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndex build() {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndex result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndex buildPartial() {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndex result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndex(this);
          onBuilt();
          return result;
        }

        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndex) {
            return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndex)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndex other) {
          if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndex.getDefaultInstance()) return this;
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }

        public final boolean isInitialized() {
          return true;
        }

        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndex parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndex) e.getUnfinishedMessage();
            throw e;
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }

        // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_ParticleManager.ReleaseParticleIndex)
      }

      static {
        defaultInstance = new ReleaseParticleIndex(true);
        defaultInstance.initFields();
      }

      // @@protoc_insertion_point(class_scope:CDOTAUserMsg_ParticleManager.ReleaseParticleIndex)
    }

    public interface CreateParticleOrBuilder extends
        // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_ParticleManager.CreateParticle)
        com.google.protobuf.MessageOrBuilder {

      /**
       * optional fixed64 particle_name_index = 1;
       */
      boolean hasParticleNameIndex();
      /**
       * optional fixed64 particle_name_index = 1;
       */
      long getParticleNameIndex();

      /**
       * optional int32 attach_type = 2;
       */
      boolean hasAttachType();
      /**
       * optional int32 attach_type = 2;
       */
      int getAttachType();

      /**
       * optional int32 entity_handle = 3;
       */
      boolean hasEntityHandle();
      /**
       * optional int32 entity_handle = 3;
       */
      int getEntityHandle();

      /**
       * optional int32 entity_handle_for_modifiers = 4;
       */
      boolean hasEntityHandleForModifiers();
      /**
       * optional int32 entity_handle_for_modifiers = 4;
       */
      int getEntityHandleForModifiers();

      /**
       * optional bool apply_voice_ban_rules = 5;
       */
      boolean hasApplyVoiceBanRules();
      /**
       * optional bool apply_voice_ban_rules = 5;
       */
      boolean getApplyVoiceBanRules();

      /**
       * optional int32 team_behavior = 6;
       */
      boolean hasTeamBehavior();
      /**
       * optional int32 team_behavior = 6;
       */
      int getTeamBehavior();
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_ParticleManager.CreateParticle}
     */
    public static final class CreateParticle extends
        com.google.protobuf.GeneratedMessage implements
        // @@protoc_insertion_point(message_implements:CDOTAUserMsg_ParticleManager.CreateParticle)
        CreateParticleOrBuilder {
      // Use CreateParticle.newBuilder() to construct.
      private CreateParticle(com.google.protobuf.GeneratedMessage.Builder builder) {
        super(builder);
        this.unknownFields = builder.getUnknownFields();
      }
      private CreateParticle(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

      private static final CreateParticle defaultInstance;
      public static CreateParticle getDefaultInstance() {
        return defaultInstance;
      }

      public CreateParticle getDefaultInstanceForType() {
        return defaultInstance;
      }

      private final com.google.protobuf.UnknownFieldSet unknownFields;
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
          getUnknownFields() {
        return this.unknownFields;
      }
      private CreateParticle(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        initFields();
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
              case 9: {
                bitField0_ |= 0x00000001;
                particleNameIndex_ = input.readFixed64();
                break;
              }
              case 16: {
                bitField0_ |= 0x00000002;
                attachType_ = input.readInt32();
                break;
              }
              case 24: {
                bitField0_ |= 0x00000004;
                entityHandle_ = input.readInt32();
                break;
              }
              case 32: {
                bitField0_ |= 0x00000008;
                entityHandleForModifiers_ = input.readInt32();
                break;
              }
              case 40: {
                bitField0_ |= 0x00000010;
                applyVoiceBanRules_ = input.readBool();
                break;
              }
              case 48: {
                bitField0_ |= 0x00000020;
                teamBehavior_ = input.readInt32();
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e.getMessage()).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_CreateParticle_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_CreateParticle_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.CreateParticle.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.CreateParticle.Builder.class);
      }

      public static com.google.protobuf.Parser PARSER =
          new com.google.protobuf.AbstractParser() {
        public CreateParticle parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new CreateParticle(input, extensionRegistry);
        }
      };

      @java.lang.Override
      public com.google.protobuf.Parser getParserForType() {
        return PARSER;
      }

      private int bitField0_;
      public static final int PARTICLE_NAME_INDEX_FIELD_NUMBER = 1;
      private long particleNameIndex_;
      /**
       * optional fixed64 particle_name_index = 1;
       */
      public boolean hasParticleNameIndex() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional fixed64 particle_name_index = 1;
       */
      public long getParticleNameIndex() {
        return particleNameIndex_;
      }

      public static final int ATTACH_TYPE_FIELD_NUMBER = 2;
      private int attachType_;
      /**
       * optional int32 attach_type = 2;
       */
      public boolean hasAttachType() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional int32 attach_type = 2;
       */
      public int getAttachType() {
        return attachType_;
      }

      public static final int ENTITY_HANDLE_FIELD_NUMBER = 3;
      private int entityHandle_;
      /**
       * optional int32 entity_handle = 3;
       */
      public boolean hasEntityHandle() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional int32 entity_handle = 3;
       */
      public int getEntityHandle() {
        return entityHandle_;
      }

      public static final int ENTITY_HANDLE_FOR_MODIFIERS_FIELD_NUMBER = 4;
      private int entityHandleForModifiers_;
      /**
       * optional int32 entity_handle_for_modifiers = 4;
       */
      public boolean hasEntityHandleForModifiers() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional int32 entity_handle_for_modifiers = 4;
       */
      public int getEntityHandleForModifiers() {
        return entityHandleForModifiers_;
      }

      public static final int APPLY_VOICE_BAN_RULES_FIELD_NUMBER = 5;
      private boolean applyVoiceBanRules_;
      /**
       * optional bool apply_voice_ban_rules = 5;
       */
      public boolean hasApplyVoiceBanRules() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * optional bool apply_voice_ban_rules = 5;
       */
      public boolean getApplyVoiceBanRules() {
        return applyVoiceBanRules_;
      }

      public static final int TEAM_BEHAVIOR_FIELD_NUMBER = 6;
      private int teamBehavior_;
      /**
       * optional int32 team_behavior = 6;
       */
      public boolean hasTeamBehavior() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * optional int32 team_behavior = 6;
       */
      public int getTeamBehavior() {
        return teamBehavior_;
      }

      private void initFields() {
        particleNameIndex_ = 0L;
        attachType_ = 0;
        entityHandle_ = 0;
        entityHandleForModifiers_ = 0;
        applyVoiceBanRules_ = false;
        teamBehavior_ = 0;
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeFixed64(1, particleNameIndex_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeInt32(2, attachType_);
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          output.writeInt32(3, entityHandle_);
        }
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          output.writeInt32(4, entityHandleForModifiers_);
        }
        if (((bitField0_ & 0x00000010) == 0x00000010)) {
          output.writeBool(5, applyVoiceBanRules_);
        }
        if (((bitField0_ & 0x00000020) == 0x00000020)) {
          output.writeInt32(6, teamBehavior_);
        }
        getUnknownFields().writeTo(output);
      }

      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;

        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeFixed64Size(1, particleNameIndex_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(2, attachType_);
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(3, entityHandle_);
        }
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(4, entityHandleForModifiers_);
        }
        if (((bitField0_ & 0x00000010) == 0x00000010)) {
          size += com.google.protobuf.CodedOutputStream
            .computeBoolSize(5, applyVoiceBanRules_);
        }
        if (((bitField0_ & 0x00000020) == 0x00000020)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(6, teamBehavior_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.Object writeReplace()
          throws java.io.ObjectStreamException {
        return super.writeReplace();
      }

      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.CreateParticle parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.CreateParticle parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.CreateParticle parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.CreateParticle parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.CreateParticle parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.CreateParticle parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.CreateParticle parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.CreateParticle parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.CreateParticle parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.CreateParticle parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }

      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.CreateParticle prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code CDOTAUserMsg_ParticleManager.CreateParticle}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder implements
          // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_ParticleManager.CreateParticle)
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.CreateParticleOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_CreateParticle_descriptor;
        }

        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_CreateParticle_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.CreateParticle.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.CreateParticle.Builder.class);
        }

        // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.CreateParticle.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          }
        }
        private static Builder create() {
          return new Builder();
        }

        public Builder clear() {
          super.clear();
          particleNameIndex_ = 0L;
          bitField0_ = (bitField0_ & ~0x00000001);
          attachType_ = 0;
          bitField0_ = (bitField0_ & ~0x00000002);
          entityHandle_ = 0;
          bitField0_ = (bitField0_ & ~0x00000004);
          entityHandleForModifiers_ = 0;
          bitField0_ = (bitField0_ & ~0x00000008);
          applyVoiceBanRules_ = false;
          bitField0_ = (bitField0_ & ~0x00000010);
          teamBehavior_ = 0;
          bitField0_ = (bitField0_ & ~0x00000020);
          return this;
        }

        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }

        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_CreateParticle_descriptor;
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.CreateParticle getDefaultInstanceForType() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.CreateParticle.getDefaultInstance();
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.CreateParticle build() {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.CreateParticle result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.CreateParticle buildPartial() {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.CreateParticle result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.CreateParticle(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.particleNameIndex_ = particleNameIndex_;
          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
            to_bitField0_ |= 0x00000002;
          }
          result.attachType_ = attachType_;
          if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
            to_bitField0_ |= 0x00000004;
          }
          result.entityHandle_ = entityHandle_;
          if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
            to_bitField0_ |= 0x00000008;
          }
          result.entityHandleForModifiers_ = entityHandleForModifiers_;
          if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
            to_bitField0_ |= 0x00000010;
          }
          result.applyVoiceBanRules_ = applyVoiceBanRules_;
          if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
            to_bitField0_ |= 0x00000020;
          }
          result.teamBehavior_ = teamBehavior_;
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }

        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.CreateParticle) {
            return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.CreateParticle)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.CreateParticle other) {
          if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.CreateParticle.getDefaultInstance()) return this;
          if (other.hasParticleNameIndex()) {
            setParticleNameIndex(other.getParticleNameIndex());
          }
          if (other.hasAttachType()) {
            setAttachType(other.getAttachType());
          }
          if (other.hasEntityHandle()) {
            setEntityHandle(other.getEntityHandle());
          }
          if (other.hasEntityHandleForModifiers()) {
            setEntityHandleForModifiers(other.getEntityHandleForModifiers());
          }
          if (other.hasApplyVoiceBanRules()) {
            setApplyVoiceBanRules(other.getApplyVoiceBanRules());
          }
          if (other.hasTeamBehavior()) {
            setTeamBehavior(other.getTeamBehavior());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }

        public final boolean isInitialized() {
          return true;
        }

        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.CreateParticle parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.CreateParticle) e.getUnfinishedMessage();
            throw e;
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        private long particleNameIndex_ ;
        /**
         * optional fixed64 particle_name_index = 1;
         */
        public boolean hasParticleNameIndex() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * optional fixed64 particle_name_index = 1;
         */
        public long getParticleNameIndex() {
          return particleNameIndex_;
        }
        /**
         * optional fixed64 particle_name_index = 1;
         */
        public Builder setParticleNameIndex(long value) {
          bitField0_ |= 0x00000001;
          particleNameIndex_ = value;
          onChanged();
          return this;
        }
        /**
         * optional fixed64 particle_name_index = 1;
         */
        public Builder clearParticleNameIndex() {
          bitField0_ = (bitField0_ & ~0x00000001);
          particleNameIndex_ = 0L;
          onChanged();
          return this;
        }

        private int attachType_ ;
        /**
         * optional int32 attach_type = 2;
         */
        public boolean hasAttachType() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        /**
         * optional int32 attach_type = 2;
         */
        public int getAttachType() {
          return attachType_;
        }
        /**
         * optional int32 attach_type = 2;
         */
        public Builder setAttachType(int value) {
          bitField0_ |= 0x00000002;
          attachType_ = value;
          onChanged();
          return this;
        }
        /**
         * optional int32 attach_type = 2;
         */
        public Builder clearAttachType() {
          bitField0_ = (bitField0_ & ~0x00000002);
          attachType_ = 0;
          onChanged();
          return this;
        }

        private int entityHandle_ ;
        /**
         * optional int32 entity_handle = 3;
         */
        public boolean hasEntityHandle() {
          return ((bitField0_ & 0x00000004) == 0x00000004);
        }
        /**
         * optional int32 entity_handle = 3;
         */
        public int getEntityHandle() {
          return entityHandle_;
        }
        /**
         * optional int32 entity_handle = 3;
         */
        public Builder setEntityHandle(int value) {
          bitField0_ |= 0x00000004;
          entityHandle_ = value;
          onChanged();
          return this;
        }
        /**
         * optional int32 entity_handle = 3;
         */
        public Builder clearEntityHandle() {
          bitField0_ = (bitField0_ & ~0x00000004);
          entityHandle_ = 0;
          onChanged();
          return this;
        }

        private int entityHandleForModifiers_ ;
        /**
         * optional int32 entity_handle_for_modifiers = 4;
         */
        public boolean hasEntityHandleForModifiers() {
          return ((bitField0_ & 0x00000008) == 0x00000008);
        }
        /**
         * optional int32 entity_handle_for_modifiers = 4;
         */
        public int getEntityHandleForModifiers() {
          return entityHandleForModifiers_;
        }
        /**
         * optional int32 entity_handle_for_modifiers = 4;
         */
        public Builder setEntityHandleForModifiers(int value) {
          bitField0_ |= 0x00000008;
          entityHandleForModifiers_ = value;
          onChanged();
          return this;
        }
        /**
         * optional int32 entity_handle_for_modifiers = 4;
         */
        public Builder clearEntityHandleForModifiers() {
          bitField0_ = (bitField0_ & ~0x00000008);
          entityHandleForModifiers_ = 0;
          onChanged();
          return this;
        }

        private boolean applyVoiceBanRules_ ;
        /**
         * optional bool apply_voice_ban_rules = 5;
         */
        public boolean hasApplyVoiceBanRules() {
          return ((bitField0_ & 0x00000010) == 0x00000010);
        }
        /**
         * optional bool apply_voice_ban_rules = 5;
         */
        public boolean getApplyVoiceBanRules() {
          return applyVoiceBanRules_;
        }
        /**
         * optional bool apply_voice_ban_rules = 5;
         */
        public Builder setApplyVoiceBanRules(boolean value) {
          bitField0_ |= 0x00000010;
          applyVoiceBanRules_ = value;
          onChanged();
          return this;
        }
        /**
         * optional bool apply_voice_ban_rules = 5;
         */
        public Builder clearApplyVoiceBanRules() {
          bitField0_ = (bitField0_ & ~0x00000010);
          applyVoiceBanRules_ = false;
          onChanged();
          return this;
        }

        private int teamBehavior_ ;
        /**
         * optional int32 team_behavior = 6;
         */
        public boolean hasTeamBehavior() {
          return ((bitField0_ & 0x00000020) == 0x00000020);
        }
        /**
         * optional int32 team_behavior = 6;
         */
        public int getTeamBehavior() {
          return teamBehavior_;
        }
        /**
         * optional int32 team_behavior = 6;
         */
        public Builder setTeamBehavior(int value) {
          bitField0_ |= 0x00000020;
          teamBehavior_ = value;
          onChanged();
          return this;
        }
        /**
         * optional int32 team_behavior = 6;
         */
        public Builder clearTeamBehavior() {
          bitField0_ = (bitField0_ & ~0x00000020);
          teamBehavior_ = 0;
          onChanged();
          return this;
        }

        // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_ParticleManager.CreateParticle)
      }

      static {
        defaultInstance = new CreateParticle(true);
        defaultInstance.initFields();
      }

      // @@protoc_insertion_point(class_scope:CDOTAUserMsg_ParticleManager.CreateParticle)
    }

    public interface DestroyParticleOrBuilder extends
        // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_ParticleManager.DestroyParticle)
        com.google.protobuf.MessageOrBuilder {

      /**
       * optional bool destroy_immediately = 1;
       */
      boolean hasDestroyImmediately();
      /**
       * optional bool destroy_immediately = 1;
       */
      boolean getDestroyImmediately();
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_ParticleManager.DestroyParticle}
     */
    public static final class DestroyParticle extends
        com.google.protobuf.GeneratedMessage implements
        // @@protoc_insertion_point(message_implements:CDOTAUserMsg_ParticleManager.DestroyParticle)
        DestroyParticleOrBuilder {
      // Use DestroyParticle.newBuilder() to construct.
      private DestroyParticle(com.google.protobuf.GeneratedMessage.Builder builder) {
        super(builder);
        this.unknownFields = builder.getUnknownFields();
      }
      private DestroyParticle(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

      private static final DestroyParticle defaultInstance;
      public static DestroyParticle getDefaultInstance() {
        return defaultInstance;
      }

      public DestroyParticle getDefaultInstanceForType() {
        return defaultInstance;
      }

      private final com.google.protobuf.UnknownFieldSet unknownFields;
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
          getUnknownFields() {
        return this.unknownFields;
      }
      private DestroyParticle(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        initFields();
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
              case 8: {
                bitField0_ |= 0x00000001;
                destroyImmediately_ = input.readBool();
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e.getMessage()).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_DestroyParticle_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_DestroyParticle_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticle.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticle.Builder.class);
      }

      public static com.google.protobuf.Parser PARSER =
          new com.google.protobuf.AbstractParser() {
        public DestroyParticle parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new DestroyParticle(input, extensionRegistry);
        }
      };

      @java.lang.Override
      public com.google.protobuf.Parser getParserForType() {
        return PARSER;
      }

      private int bitField0_;
      public static final int DESTROY_IMMEDIATELY_FIELD_NUMBER = 1;
      private boolean destroyImmediately_;
      /**
       * optional bool destroy_immediately = 1;
       */
      public boolean hasDestroyImmediately() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional bool destroy_immediately = 1;
       */
      public boolean getDestroyImmediately() {
        return destroyImmediately_;
      }

      private void initFields() {
        destroyImmediately_ = false;
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeBool(1, destroyImmediately_);
        }
        getUnknownFields().writeTo(output);
      }

      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;

        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeBoolSize(1, destroyImmediately_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.Object writeReplace()
          throws java.io.ObjectStreamException {
        return super.writeReplace();
      }

      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticle parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticle parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticle parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticle parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticle parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticle parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticle parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticle parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticle parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticle parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }

      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticle prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code CDOTAUserMsg_ParticleManager.DestroyParticle}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder implements
          // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_ParticleManager.DestroyParticle)
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticleOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_DestroyParticle_descriptor;
        }

        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_DestroyParticle_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticle.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticle.Builder.class);
        }

        // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticle.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          }
        }
        private static Builder create() {
          return new Builder();
        }

        public Builder clear() {
          super.clear();
          destroyImmediately_ = false;
          bitField0_ = (bitField0_ & ~0x00000001);
          return this;
        }

        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }

        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_DestroyParticle_descriptor;
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticle getDefaultInstanceForType() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticle.getDefaultInstance();
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticle build() {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticle result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticle buildPartial() {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticle result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticle(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.destroyImmediately_ = destroyImmediately_;
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }

        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticle) {
            return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticle)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticle other) {
          if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticle.getDefaultInstance()) return this;
          if (other.hasDestroyImmediately()) {
            setDestroyImmediately(other.getDestroyImmediately());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }

        public final boolean isInitialized() {
          return true;
        }

        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticle parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticle) e.getUnfinishedMessage();
            throw e;
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        private boolean destroyImmediately_ ;
        /**
         * optional bool destroy_immediately = 1;
         */
        public boolean hasDestroyImmediately() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * optional bool destroy_immediately = 1;
         */
        public boolean getDestroyImmediately() {
          return destroyImmediately_;
        }
        /**
         * optional bool destroy_immediately = 1;
         */
        public Builder setDestroyImmediately(boolean value) {
          bitField0_ |= 0x00000001;
          destroyImmediately_ = value;
          onChanged();
          return this;
        }
        /**
         * optional bool destroy_immediately = 1;
         */
        public Builder clearDestroyImmediately() {
          bitField0_ = (bitField0_ & ~0x00000001);
          destroyImmediately_ = false;
          onChanged();
          return this;
        }

        // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_ParticleManager.DestroyParticle)
      }

      static {
        defaultInstance = new DestroyParticle(true);
        defaultInstance.initFields();
      }

      // @@protoc_insertion_point(class_scope:CDOTAUserMsg_ParticleManager.DestroyParticle)
    }

    public interface DestroyParticleInvolvingOrBuilder extends
        // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_ParticleManager.DestroyParticleInvolving)
        com.google.protobuf.MessageOrBuilder {

      /**
       * optional bool destroy_immediately = 1;
       */
      boolean hasDestroyImmediately();
      /**
       * optional bool destroy_immediately = 1;
       */
      boolean getDestroyImmediately();

      /**
       * optional int32 entity_handle = 3;
       */
      boolean hasEntityHandle();
      /**
       * optional int32 entity_handle = 3;
       */
      int getEntityHandle();
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_ParticleManager.DestroyParticleInvolving}
     */
    public static final class DestroyParticleInvolving extends
        com.google.protobuf.GeneratedMessage implements
        // @@protoc_insertion_point(message_implements:CDOTAUserMsg_ParticleManager.DestroyParticleInvolving)
        DestroyParticleInvolvingOrBuilder {
      // Use DestroyParticleInvolving.newBuilder() to construct.
      private DestroyParticleInvolving(com.google.protobuf.GeneratedMessage.Builder builder) {
        super(builder);
        this.unknownFields = builder.getUnknownFields();
      }
      private DestroyParticleInvolving(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

      private static final DestroyParticleInvolving defaultInstance;
      public static DestroyParticleInvolving getDefaultInstance() {
        return defaultInstance;
      }

      public DestroyParticleInvolving getDefaultInstanceForType() {
        return defaultInstance;
      }

      private final com.google.protobuf.UnknownFieldSet unknownFields;
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
          getUnknownFields() {
        return this.unknownFields;
      }
      private DestroyParticleInvolving(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        initFields();
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
              case 8: {
                bitField0_ |= 0x00000001;
                destroyImmediately_ = input.readBool();
                break;
              }
              case 24: {
                bitField0_ |= 0x00000002;
                entityHandle_ = input.readInt32();
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e.getMessage()).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_DestroyParticleInvolving_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_DestroyParticleInvolving_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolving.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolving.Builder.class);
      }

      public static com.google.protobuf.Parser PARSER =
          new com.google.protobuf.AbstractParser() {
        public DestroyParticleInvolving parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new DestroyParticleInvolving(input, extensionRegistry);
        }
      };

      @java.lang.Override
      public com.google.protobuf.Parser getParserForType() {
        return PARSER;
      }

      private int bitField0_;
      public static final int DESTROY_IMMEDIATELY_FIELD_NUMBER = 1;
      private boolean destroyImmediately_;
      /**
       * optional bool destroy_immediately = 1;
       */
      public boolean hasDestroyImmediately() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional bool destroy_immediately = 1;
       */
      public boolean getDestroyImmediately() {
        return destroyImmediately_;
      }

      public static final int ENTITY_HANDLE_FIELD_NUMBER = 3;
      private int entityHandle_;
      /**
       * optional int32 entity_handle = 3;
       */
      public boolean hasEntityHandle() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional int32 entity_handle = 3;
       */
      public int getEntityHandle() {
        return entityHandle_;
      }

      private void initFields() {
        destroyImmediately_ = false;
        entityHandle_ = 0;
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeBool(1, destroyImmediately_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeInt32(3, entityHandle_);
        }
        getUnknownFields().writeTo(output);
      }

      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;

        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeBoolSize(1, destroyImmediately_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(3, entityHandle_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.Object writeReplace()
          throws java.io.ObjectStreamException {
        return super.writeReplace();
      }

      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolving parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolving parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolving parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolving parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolving parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolving parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolving parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolving parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolving parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolving parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }

      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolving prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code CDOTAUserMsg_ParticleManager.DestroyParticleInvolving}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder implements
          // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_ParticleManager.DestroyParticleInvolving)
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolvingOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_DestroyParticleInvolving_descriptor;
        }

        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_DestroyParticleInvolving_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolving.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolving.Builder.class);
        }

        // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolving.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          }
        }
        private static Builder create() {
          return new Builder();
        }

        public Builder clear() {
          super.clear();
          destroyImmediately_ = false;
          bitField0_ = (bitField0_ & ~0x00000001);
          entityHandle_ = 0;
          bitField0_ = (bitField0_ & ~0x00000002);
          return this;
        }

        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }

        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_DestroyParticleInvolving_descriptor;
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolving getDefaultInstanceForType() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolving.getDefaultInstance();
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolving build() {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolving result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolving buildPartial() {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolving result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolving(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.destroyImmediately_ = destroyImmediately_;
          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
            to_bitField0_ |= 0x00000002;
          }
          result.entityHandle_ = entityHandle_;
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }

        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolving) {
            return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolving)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolving other) {
          if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolving.getDefaultInstance()) return this;
          if (other.hasDestroyImmediately()) {
            setDestroyImmediately(other.getDestroyImmediately());
          }
          if (other.hasEntityHandle()) {
            setEntityHandle(other.getEntityHandle());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }

        public final boolean isInitialized() {
          return true;
        }

        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolving parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolving) e.getUnfinishedMessage();
            throw e;
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        private boolean destroyImmediately_ ;
        /**
         * optional bool destroy_immediately = 1;
         */
        public boolean hasDestroyImmediately() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * optional bool destroy_immediately = 1;
         */
        public boolean getDestroyImmediately() {
          return destroyImmediately_;
        }
        /**
         * optional bool destroy_immediately = 1;
         */
        public Builder setDestroyImmediately(boolean value) {
          bitField0_ |= 0x00000001;
          destroyImmediately_ = value;
          onChanged();
          return this;
        }
        /**
         * optional bool destroy_immediately = 1;
         */
        public Builder clearDestroyImmediately() {
          bitField0_ = (bitField0_ & ~0x00000001);
          destroyImmediately_ = false;
          onChanged();
          return this;
        }

        private int entityHandle_ ;
        /**
         * optional int32 entity_handle = 3;
         */
        public boolean hasEntityHandle() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        /**
         * optional int32 entity_handle = 3;
         */
        public int getEntityHandle() {
          return entityHandle_;
        }
        /**
         * optional int32 entity_handle = 3;
         */
        public Builder setEntityHandle(int value) {
          bitField0_ |= 0x00000002;
          entityHandle_ = value;
          onChanged();
          return this;
        }
        /**
         * optional int32 entity_handle = 3;
         */
        public Builder clearEntityHandle() {
          bitField0_ = (bitField0_ & ~0x00000002);
          entityHandle_ = 0;
          onChanged();
          return this;
        }

        // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_ParticleManager.DestroyParticleInvolving)
      }

      static {
        defaultInstance = new DestroyParticleInvolving(true);
        defaultInstance.initFields();
      }

      // @@protoc_insertion_point(class_scope:CDOTAUserMsg_ParticleManager.DestroyParticleInvolving)
    }

    public interface UpdateParticleOrBuilder extends
        // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_ParticleManager.UpdateParticle)
        com.google.protobuf.MessageOrBuilder {

      /**
       * optional int32 control_point = 1;
       */
      boolean hasControlPoint();
      /**
       * optional int32 control_point = 1;
       */
      int getControlPoint();

      /**
       * optional .CMsgVector position = 2;
       */
      boolean hasPosition();
      /**
       * optional .CMsgVector position = 2;
       */
      skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector getPosition();
      /**
       * optional .CMsgVector position = 2;
       */
      skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder getPositionOrBuilder();
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_ParticleManager.UpdateParticle}
     */
    public static final class UpdateParticle extends
        com.google.protobuf.GeneratedMessage implements
        // @@protoc_insertion_point(message_implements:CDOTAUserMsg_ParticleManager.UpdateParticle)
        UpdateParticleOrBuilder {
      // Use UpdateParticle.newBuilder() to construct.
      private UpdateParticle(com.google.protobuf.GeneratedMessage.Builder builder) {
        super(builder);
        this.unknownFields = builder.getUnknownFields();
      }
      private UpdateParticle(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

      private static final UpdateParticle defaultInstance;
      public static UpdateParticle getDefaultInstance() {
        return defaultInstance;
      }

      public UpdateParticle getDefaultInstanceForType() {
        return defaultInstance;
      }

      private final com.google.protobuf.UnknownFieldSet unknownFields;
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
          getUnknownFields() {
        return this.unknownFields;
      }
      private UpdateParticle(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        initFields();
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
              case 8: {
                bitField0_ |= 0x00000001;
                controlPoint_ = input.readInt32();
                break;
              }
              case 18: {
                skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder subBuilder = null;
                if (((bitField0_ & 0x00000002) == 0x00000002)) {
                  subBuilder = position_.toBuilder();
                }
                position_ = input.readMessage(skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(position_);
                  position_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000002;
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e.getMessage()).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_UpdateParticle_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_UpdateParticle_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticle.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticle.Builder.class);
      }

      public static com.google.protobuf.Parser PARSER =
          new com.google.protobuf.AbstractParser() {
        public UpdateParticle parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new UpdateParticle(input, extensionRegistry);
        }
      };

      @java.lang.Override
      public com.google.protobuf.Parser getParserForType() {
        return PARSER;
      }

      private int bitField0_;
      public static final int CONTROL_POINT_FIELD_NUMBER = 1;
      private int controlPoint_;
      /**
       * optional int32 control_point = 1;
       */
      public boolean hasControlPoint() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 control_point = 1;
       */
      public int getControlPoint() {
        return controlPoint_;
      }

      public static final int POSITION_FIELD_NUMBER = 2;
      private skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector position_;
      /**
       * optional .CMsgVector position = 2;
       */
      public boolean hasPosition() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional .CMsgVector position = 2;
       */
      public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector getPosition() {
        return position_;
      }
      /**
       * optional .CMsgVector position = 2;
       */
      public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder getPositionOrBuilder() {
        return position_;
      }

      private void initFields() {
        controlPoint_ = 0;
        position_ = skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.getDefaultInstance();
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeInt32(1, controlPoint_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeMessage(2, position_);
        }
        getUnknownFields().writeTo(output);
      }

      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;

        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(1, controlPoint_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(2, position_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.Object writeReplace()
          throws java.io.ObjectStreamException {
        return super.writeReplace();
      }

      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticle parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticle parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticle parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticle parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticle parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticle parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticle parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticle parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticle parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticle parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }

      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticle prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code CDOTAUserMsg_ParticleManager.UpdateParticle}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder implements
          // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_ParticleManager.UpdateParticle)
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_UpdateParticle_descriptor;
        }

        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_UpdateParticle_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticle.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticle.Builder.class);
        }

        // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticle.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
            getPositionFieldBuilder();
          }
        }
        private static Builder create() {
          return new Builder();
        }

        public Builder clear() {
          super.clear();
          controlPoint_ = 0;
          bitField0_ = (bitField0_ & ~0x00000001);
          if (positionBuilder_ == null) {
            position_ = skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.getDefaultInstance();
          } else {
            positionBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000002);
          return this;
        }

        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }

        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_UpdateParticle_descriptor;
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticle getDefaultInstanceForType() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticle.getDefaultInstance();
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticle build() {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticle result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticle buildPartial() {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticle result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticle(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.controlPoint_ = controlPoint_;
          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
            to_bitField0_ |= 0x00000002;
          }
          if (positionBuilder_ == null) {
            result.position_ = position_;
          } else {
            result.position_ = positionBuilder_.build();
          }
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }

        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticle) {
            return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticle)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticle other) {
          if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticle.getDefaultInstance()) return this;
          if (other.hasControlPoint()) {
            setControlPoint(other.getControlPoint());
          }
          if (other.hasPosition()) {
            mergePosition(other.getPosition());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }

        public final boolean isInitialized() {
          return true;
        }

        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticle parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticle) e.getUnfinishedMessage();
            throw e;
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        private int controlPoint_ ;
        /**
         * optional int32 control_point = 1;
         */
        public boolean hasControlPoint() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * optional int32 control_point = 1;
         */
        public int getControlPoint() {
          return controlPoint_;
        }
        /**
         * optional int32 control_point = 1;
         */
        public Builder setControlPoint(int value) {
          bitField0_ |= 0x00000001;
          controlPoint_ = value;
          onChanged();
          return this;
        }
        /**
         * optional int32 control_point = 1;
         */
        public Builder clearControlPoint() {
          bitField0_ = (bitField0_ & ~0x00000001);
          controlPoint_ = 0;
          onChanged();
          return this;
        }

        private skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector position_ = skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.getDefaultInstance();
        private com.google.protobuf.SingleFieldBuilder<
            skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder> positionBuilder_;
        /**
         * optional .CMsgVector position = 2;
         */
        public boolean hasPosition() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        /**
         * optional .CMsgVector position = 2;
         */
        public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector getPosition() {
          if (positionBuilder_ == null) {
            return position_;
          } else {
            return positionBuilder_.getMessage();
          }
        }
        /**
         * optional .CMsgVector position = 2;
         */
        public Builder setPosition(skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector value) {
          if (positionBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            position_ = value;
            onChanged();
          } else {
            positionBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000002;
          return this;
        }
        /**
         * optional .CMsgVector position = 2;
         */
        public Builder setPosition(
            skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder builderForValue) {
          if (positionBuilder_ == null) {
            position_ = builderForValue.build();
            onChanged();
          } else {
            positionBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000002;
          return this;
        }
        /**
         * optional .CMsgVector position = 2;
         */
        public Builder mergePosition(skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector value) {
          if (positionBuilder_ == null) {
            if (((bitField0_ & 0x00000002) == 0x00000002) &&
                position_ != skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.getDefaultInstance()) {
              position_ =
                skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.newBuilder(position_).mergeFrom(value).buildPartial();
            } else {
              position_ = value;
            }
            onChanged();
          } else {
            positionBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00000002;
          return this;
        }
        /**
         * optional .CMsgVector position = 2;
         */
        public Builder clearPosition() {
          if (positionBuilder_ == null) {
            position_ = skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.getDefaultInstance();
            onChanged();
          } else {
            positionBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000002);
          return this;
        }
        /**
         * optional .CMsgVector position = 2;
         */
        public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder getPositionBuilder() {
          bitField0_ |= 0x00000002;
          onChanged();
          return getPositionFieldBuilder().getBuilder();
        }
        /**
         * optional .CMsgVector position = 2;
         */
        public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder getPositionOrBuilder() {
          if (positionBuilder_ != null) {
            return positionBuilder_.getMessageOrBuilder();
          } else {
            return position_;
          }
        }
        /**
         * optional .CMsgVector position = 2;
         */
        private com.google.protobuf.SingleFieldBuilder<
            skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder> 
            getPositionFieldBuilder() {
          if (positionBuilder_ == null) {
            positionBuilder_ = new com.google.protobuf.SingleFieldBuilder<
                skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder>(
                    getPosition(),
                    getParentForChildren(),
                    isClean());
            position_ = null;
          }
          return positionBuilder_;
        }

        // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_ParticleManager.UpdateParticle)
      }

      static {
        defaultInstance = new UpdateParticle(true);
        defaultInstance.initFields();
      }

      // @@protoc_insertion_point(class_scope:CDOTAUserMsg_ParticleManager.UpdateParticle)
    }

    public interface UpdateParticleFwdOrBuilder extends
        // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_ParticleManager.UpdateParticleFwd)
        com.google.protobuf.MessageOrBuilder {

      /**
       * optional int32 control_point = 1;
       */
      boolean hasControlPoint();
      /**
       * optional int32 control_point = 1;
       */
      int getControlPoint();

      /**
       * optional .CMsgVector forward = 2;
       */
      boolean hasForward();
      /**
       * optional .CMsgVector forward = 2;
       */
      skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector getForward();
      /**
       * optional .CMsgVector forward = 2;
       */
      skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder getForwardOrBuilder();
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_ParticleManager.UpdateParticleFwd}
     */
    public static final class UpdateParticleFwd extends
        com.google.protobuf.GeneratedMessage implements
        // @@protoc_insertion_point(message_implements:CDOTAUserMsg_ParticleManager.UpdateParticleFwd)
        UpdateParticleFwdOrBuilder {
      // Use UpdateParticleFwd.newBuilder() to construct.
      private UpdateParticleFwd(com.google.protobuf.GeneratedMessage.Builder builder) {
        super(builder);
        this.unknownFields = builder.getUnknownFields();
      }
      private UpdateParticleFwd(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

      private static final UpdateParticleFwd defaultInstance;
      public static UpdateParticleFwd getDefaultInstance() {
        return defaultInstance;
      }

      public UpdateParticleFwd getDefaultInstanceForType() {
        return defaultInstance;
      }

      private final com.google.protobuf.UnknownFieldSet unknownFields;
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
          getUnknownFields() {
        return this.unknownFields;
      }
      private UpdateParticleFwd(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        initFields();
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
              case 8: {
                bitField0_ |= 0x00000001;
                controlPoint_ = input.readInt32();
                break;
              }
              case 18: {
                skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder subBuilder = null;
                if (((bitField0_ & 0x00000002) == 0x00000002)) {
                  subBuilder = forward_.toBuilder();
                }
                forward_ = input.readMessage(skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(forward_);
                  forward_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000002;
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e.getMessage()).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleFwd_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleFwd_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwd.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwd.Builder.class);
      }

      public static com.google.protobuf.Parser PARSER =
          new com.google.protobuf.AbstractParser() {
        public UpdateParticleFwd parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new UpdateParticleFwd(input, extensionRegistry);
        }
      };

      @java.lang.Override
      public com.google.protobuf.Parser getParserForType() {
        return PARSER;
      }

      private int bitField0_;
      public static final int CONTROL_POINT_FIELD_NUMBER = 1;
      private int controlPoint_;
      /**
       * optional int32 control_point = 1;
       */
      public boolean hasControlPoint() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 control_point = 1;
       */
      public int getControlPoint() {
        return controlPoint_;
      }

      public static final int FORWARD_FIELD_NUMBER = 2;
      private skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector forward_;
      /**
       * optional .CMsgVector forward = 2;
       */
      public boolean hasForward() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional .CMsgVector forward = 2;
       */
      public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector getForward() {
        return forward_;
      }
      /**
       * optional .CMsgVector forward = 2;
       */
      public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder getForwardOrBuilder() {
        return forward_;
      }

      private void initFields() {
        controlPoint_ = 0;
        forward_ = skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.getDefaultInstance();
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeInt32(1, controlPoint_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeMessage(2, forward_);
        }
        getUnknownFields().writeTo(output);
      }

      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;

        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(1, controlPoint_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(2, forward_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.Object writeReplace()
          throws java.io.ObjectStreamException {
        return super.writeReplace();
      }

      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwd parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwd parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwd parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwd parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwd parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwd parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwd parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwd parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwd parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwd parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }

      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwd prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code CDOTAUserMsg_ParticleManager.UpdateParticleFwd}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder implements
          // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_ParticleManager.UpdateParticleFwd)
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwdOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleFwd_descriptor;
        }

        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleFwd_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwd.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwd.Builder.class);
        }

        // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwd.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
            getForwardFieldBuilder();
          }
        }
        private static Builder create() {
          return new Builder();
        }

        public Builder clear() {
          super.clear();
          controlPoint_ = 0;
          bitField0_ = (bitField0_ & ~0x00000001);
          if (forwardBuilder_ == null) {
            forward_ = skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.getDefaultInstance();
          } else {
            forwardBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000002);
          return this;
        }

        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }

        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleFwd_descriptor;
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwd getDefaultInstanceForType() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwd.getDefaultInstance();
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwd build() {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwd result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwd buildPartial() {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwd result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwd(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.controlPoint_ = controlPoint_;
          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
            to_bitField0_ |= 0x00000002;
          }
          if (forwardBuilder_ == null) {
            result.forward_ = forward_;
          } else {
            result.forward_ = forwardBuilder_.build();
          }
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }

        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwd) {
            return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwd)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwd other) {
          if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwd.getDefaultInstance()) return this;
          if (other.hasControlPoint()) {
            setControlPoint(other.getControlPoint());
          }
          if (other.hasForward()) {
            mergeForward(other.getForward());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }

        public final boolean isInitialized() {
          return true;
        }

        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwd parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwd) e.getUnfinishedMessage();
            throw e;
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        private int controlPoint_ ;
        /**
         * optional int32 control_point = 1;
         */
        public boolean hasControlPoint() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * optional int32 control_point = 1;
         */
        public int getControlPoint() {
          return controlPoint_;
        }
        /**
         * optional int32 control_point = 1;
         */
        public Builder setControlPoint(int value) {
          bitField0_ |= 0x00000001;
          controlPoint_ = value;
          onChanged();
          return this;
        }
        /**
         * optional int32 control_point = 1;
         */
        public Builder clearControlPoint() {
          bitField0_ = (bitField0_ & ~0x00000001);
          controlPoint_ = 0;
          onChanged();
          return this;
        }

        private skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector forward_ = skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.getDefaultInstance();
        private com.google.protobuf.SingleFieldBuilder<
            skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder> forwardBuilder_;
        /**
         * optional .CMsgVector forward = 2;
         */
        public boolean hasForward() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        /**
         * optional .CMsgVector forward = 2;
         */
        public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector getForward() {
          if (forwardBuilder_ == null) {
            return forward_;
          } else {
            return forwardBuilder_.getMessage();
          }
        }
        /**
         * optional .CMsgVector forward = 2;
         */
        public Builder setForward(skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector value) {
          if (forwardBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            forward_ = value;
            onChanged();
          } else {
            forwardBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000002;
          return this;
        }
        /**
         * optional .CMsgVector forward = 2;
         */
        public Builder setForward(
            skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder builderForValue) {
          if (forwardBuilder_ == null) {
            forward_ = builderForValue.build();
            onChanged();
          } else {
            forwardBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000002;
          return this;
        }
        /**
         * optional .CMsgVector forward = 2;
         */
        public Builder mergeForward(skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector value) {
          if (forwardBuilder_ == null) {
            if (((bitField0_ & 0x00000002) == 0x00000002) &&
                forward_ != skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.getDefaultInstance()) {
              forward_ =
                skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.newBuilder(forward_).mergeFrom(value).buildPartial();
            } else {
              forward_ = value;
            }
            onChanged();
          } else {
            forwardBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00000002;
          return this;
        }
        /**
         * optional .CMsgVector forward = 2;
         */
        public Builder clearForward() {
          if (forwardBuilder_ == null) {
            forward_ = skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.getDefaultInstance();
            onChanged();
          } else {
            forwardBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000002);
          return this;
        }
        /**
         * optional .CMsgVector forward = 2;
         */
        public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder getForwardBuilder() {
          bitField0_ |= 0x00000002;
          onChanged();
          return getForwardFieldBuilder().getBuilder();
        }
        /**
         * optional .CMsgVector forward = 2;
         */
        public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder getForwardOrBuilder() {
          if (forwardBuilder_ != null) {
            return forwardBuilder_.getMessageOrBuilder();
          } else {
            return forward_;
          }
        }
        /**
         * optional .CMsgVector forward = 2;
         */
        private com.google.protobuf.SingleFieldBuilder<
            skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder> 
            getForwardFieldBuilder() {
          if (forwardBuilder_ == null) {
            forwardBuilder_ = new com.google.protobuf.SingleFieldBuilder<
                skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder>(
                    getForward(),
                    getParentForChildren(),
                    isClean());
            forward_ = null;
          }
          return forwardBuilder_;
        }

        // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_ParticleManager.UpdateParticleFwd)
      }

      static {
        defaultInstance = new UpdateParticleFwd(true);
        defaultInstance.initFields();
      }

      // @@protoc_insertion_point(class_scope:CDOTAUserMsg_ParticleManager.UpdateParticleFwd)
    }

    public interface UpdateParticleOrientOrBuilder extends
        // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_ParticleManager.UpdateParticleOrient)
        com.google.protobuf.MessageOrBuilder {

      /**
       * optional int32 control_point = 1;
       */
      boolean hasControlPoint();
      /**
       * optional int32 control_point = 1;
       */
      int getControlPoint();

      /**
       * optional .CMsgVector forward = 2;
       */
      boolean hasForward();
      /**
       * optional .CMsgVector forward = 2;
       */
      skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector getForward();
      /**
       * optional .CMsgVector forward = 2;
       */
      skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder getForwardOrBuilder();

      /**
       * optional .CMsgVector right = 3 [deprecated = true];
       */
      @java.lang.Deprecated boolean hasRight();
      /**
       * optional .CMsgVector right = 3 [deprecated = true];
       */
      @java.lang.Deprecated skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector getRight();
      /**
       * optional .CMsgVector right = 3 [deprecated = true];
       */
      @java.lang.Deprecated skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder getRightOrBuilder();

      /**
       * optional .CMsgVector up = 4;
       */
      boolean hasUp();
      /**
       * optional .CMsgVector up = 4;
       */
      skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector getUp();
      /**
       * optional .CMsgVector up = 4;
       */
      skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder getUpOrBuilder();

      /**
       * optional .CMsgVector left = 5;
       */
      boolean hasLeft();
      /**
       * optional .CMsgVector left = 5;
       */
      skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector getLeft();
      /**
       * optional .CMsgVector left = 5;
       */
      skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder getLeftOrBuilder();
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_ParticleManager.UpdateParticleOrient}
     */
    public static final class UpdateParticleOrient extends
        com.google.protobuf.GeneratedMessage implements
        // @@protoc_insertion_point(message_implements:CDOTAUserMsg_ParticleManager.UpdateParticleOrient)
        UpdateParticleOrientOrBuilder {
      // Use UpdateParticleOrient.newBuilder() to construct.
      private UpdateParticleOrient(com.google.protobuf.GeneratedMessage.Builder builder) {
        super(builder);
        this.unknownFields = builder.getUnknownFields();
      }
      private UpdateParticleOrient(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

      private static final UpdateParticleOrient defaultInstance;
      public static UpdateParticleOrient getDefaultInstance() {
        return defaultInstance;
      }

      public UpdateParticleOrient getDefaultInstanceForType() {
        return defaultInstance;
      }

      private final com.google.protobuf.UnknownFieldSet unknownFields;
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
          getUnknownFields() {
        return this.unknownFields;
      }
      private UpdateParticleOrient(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        initFields();
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
              case 8: {
                bitField0_ |= 0x00000001;
                controlPoint_ = input.readInt32();
                break;
              }
              case 18: {
                skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder subBuilder = null;
                if (((bitField0_ & 0x00000002) == 0x00000002)) {
                  subBuilder = forward_.toBuilder();
                }
                forward_ = input.readMessage(skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(forward_);
                  forward_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000002;
                break;
              }
              case 26: {
                skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder subBuilder = null;
                if (((bitField0_ & 0x00000004) == 0x00000004)) {
                  subBuilder = right_.toBuilder();
                }
                right_ = input.readMessage(skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(right_);
                  right_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000004;
                break;
              }
              case 34: {
                skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder subBuilder = null;
                if (((bitField0_ & 0x00000008) == 0x00000008)) {
                  subBuilder = up_.toBuilder();
                }
                up_ = input.readMessage(skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(up_);
                  up_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000008;
                break;
              }
              case 42: {
                skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder subBuilder = null;
                if (((bitField0_ & 0x00000010) == 0x00000010)) {
                  subBuilder = left_.toBuilder();
                }
                left_ = input.readMessage(skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(left_);
                  left_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000010;
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e.getMessage()).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleOrient_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleOrient_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrient.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrient.Builder.class);
      }

      public static com.google.protobuf.Parser PARSER =
          new com.google.protobuf.AbstractParser() {
        public UpdateParticleOrient parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new UpdateParticleOrient(input, extensionRegistry);
        }
      };

      @java.lang.Override
      public com.google.protobuf.Parser getParserForType() {
        return PARSER;
      }

      private int bitField0_;
      public static final int CONTROL_POINT_FIELD_NUMBER = 1;
      private int controlPoint_;
      /**
       * optional int32 control_point = 1;
       */
      public boolean hasControlPoint() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 control_point = 1;
       */
      public int getControlPoint() {
        return controlPoint_;
      }

      public static final int FORWARD_FIELD_NUMBER = 2;
      private skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector forward_;
      /**
       * optional .CMsgVector forward = 2;
       */
      public boolean hasForward() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional .CMsgVector forward = 2;
       */
      public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector getForward() {
        return forward_;
      }
      /**
       * optional .CMsgVector forward = 2;
       */
      public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder getForwardOrBuilder() {
        return forward_;
      }

      public static final int RIGHT_FIELD_NUMBER = 3;
      private skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector right_;
      /**
       * optional .CMsgVector right = 3 [deprecated = true];
       */
      @java.lang.Deprecated public boolean hasRight() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional .CMsgVector right = 3 [deprecated = true];
       */
      @java.lang.Deprecated public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector getRight() {
        return right_;
      }
      /**
       * optional .CMsgVector right = 3 [deprecated = true];
       */
      @java.lang.Deprecated public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder getRightOrBuilder() {
        return right_;
      }

      public static final int UP_FIELD_NUMBER = 4;
      private skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector up_;
      /**
       * optional .CMsgVector up = 4;
       */
      public boolean hasUp() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional .CMsgVector up = 4;
       */
      public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector getUp() {
        return up_;
      }
      /**
       * optional .CMsgVector up = 4;
       */
      public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder getUpOrBuilder() {
        return up_;
      }

      public static final int LEFT_FIELD_NUMBER = 5;
      private skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector left_;
      /**
       * optional .CMsgVector left = 5;
       */
      public boolean hasLeft() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * optional .CMsgVector left = 5;
       */
      public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector getLeft() {
        return left_;
      }
      /**
       * optional .CMsgVector left = 5;
       */
      public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder getLeftOrBuilder() {
        return left_;
      }

      private void initFields() {
        controlPoint_ = 0;
        forward_ = skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.getDefaultInstance();
        right_ = skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.getDefaultInstance();
        up_ = skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.getDefaultInstance();
        left_ = skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.getDefaultInstance();
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeInt32(1, controlPoint_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeMessage(2, forward_);
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          output.writeMessage(3, right_);
        }
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          output.writeMessage(4, up_);
        }
        if (((bitField0_ & 0x00000010) == 0x00000010)) {
          output.writeMessage(5, left_);
        }
        getUnknownFields().writeTo(output);
      }

      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;

        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(1, controlPoint_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(2, forward_);
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(3, right_);
        }
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(4, up_);
        }
        if (((bitField0_ & 0x00000010) == 0x00000010)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(5, left_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.Object writeReplace()
          throws java.io.ObjectStreamException {
        return super.writeReplace();
      }

      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrient parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrient parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrient parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrient parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrient parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrient parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrient parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrient parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrient parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrient parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }

      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrient prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code CDOTAUserMsg_ParticleManager.UpdateParticleOrient}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder implements
          // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_ParticleManager.UpdateParticleOrient)
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrientOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleOrient_descriptor;
        }

        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleOrient_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrient.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrient.Builder.class);
        }

        // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrient.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
            getForwardFieldBuilder();
            getRightFieldBuilder();
            getUpFieldBuilder();
            getLeftFieldBuilder();
          }
        }
        private static Builder create() {
          return new Builder();
        }

        public Builder clear() {
          super.clear();
          controlPoint_ = 0;
          bitField0_ = (bitField0_ & ~0x00000001);
          if (forwardBuilder_ == null) {
            forward_ = skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.getDefaultInstance();
          } else {
            forwardBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000002);
          if (rightBuilder_ == null) {
            right_ = skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.getDefaultInstance();
          } else {
            rightBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000004);
          if (upBuilder_ == null) {
            up_ = skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.getDefaultInstance();
          } else {
            upBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000008);
          if (leftBuilder_ == null) {
            left_ = skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.getDefaultInstance();
          } else {
            leftBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000010);
          return this;
        }

        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }

        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleOrient_descriptor;
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrient getDefaultInstanceForType() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrient.getDefaultInstance();
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrient build() {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrient result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrient buildPartial() {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrient result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrient(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.controlPoint_ = controlPoint_;
          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
            to_bitField0_ |= 0x00000002;
          }
          if (forwardBuilder_ == null) {
            result.forward_ = forward_;
          } else {
            result.forward_ = forwardBuilder_.build();
          }
          if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
            to_bitField0_ |= 0x00000004;
          }
          if (rightBuilder_ == null) {
            result.right_ = right_;
          } else {
            result.right_ = rightBuilder_.build();
          }
          if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
            to_bitField0_ |= 0x00000008;
          }
          if (upBuilder_ == null) {
            result.up_ = up_;
          } else {
            result.up_ = upBuilder_.build();
          }
          if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
            to_bitField0_ |= 0x00000010;
          }
          if (leftBuilder_ == null) {
            result.left_ = left_;
          } else {
            result.left_ = leftBuilder_.build();
          }
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }

        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrient) {
            return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrient)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrient other) {
          if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrient.getDefaultInstance()) return this;
          if (other.hasControlPoint()) {
            setControlPoint(other.getControlPoint());
          }
          if (other.hasForward()) {
            mergeForward(other.getForward());
          }
          if (other.hasRight()) {
            mergeRight(other.getRight());
          }
          if (other.hasUp()) {
            mergeUp(other.getUp());
          }
          if (other.hasLeft()) {
            mergeLeft(other.getLeft());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }

        public final boolean isInitialized() {
          return true;
        }

        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrient parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrient) e.getUnfinishedMessage();
            throw e;
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        private int controlPoint_ ;
        /**
         * optional int32 control_point = 1;
         */
        public boolean hasControlPoint() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * optional int32 control_point = 1;
         */
        public int getControlPoint() {
          return controlPoint_;
        }
        /**
         * optional int32 control_point = 1;
         */
        public Builder setControlPoint(int value) {
          bitField0_ |= 0x00000001;
          controlPoint_ = value;
          onChanged();
          return this;
        }
        /**
         * optional int32 control_point = 1;
         */
        public Builder clearControlPoint() {
          bitField0_ = (bitField0_ & ~0x00000001);
          controlPoint_ = 0;
          onChanged();
          return this;
        }

        private skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector forward_ = skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.getDefaultInstance();
        private com.google.protobuf.SingleFieldBuilder<
            skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder> forwardBuilder_;
        /**
         * optional .CMsgVector forward = 2;
         */
        public boolean hasForward() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        /**
         * optional .CMsgVector forward = 2;
         */
        public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector getForward() {
          if (forwardBuilder_ == null) {
            return forward_;
          } else {
            return forwardBuilder_.getMessage();
          }
        }
        /**
         * optional .CMsgVector forward = 2;
         */
        public Builder setForward(skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector value) {
          if (forwardBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            forward_ = value;
            onChanged();
          } else {
            forwardBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000002;
          return this;
        }
        /**
         * optional .CMsgVector forward = 2;
         */
        public Builder setForward(
            skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder builderForValue) {
          if (forwardBuilder_ == null) {
            forward_ = builderForValue.build();
            onChanged();
          } else {
            forwardBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000002;
          return this;
        }
        /**
         * optional .CMsgVector forward = 2;
         */
        public Builder mergeForward(skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector value) {
          if (forwardBuilder_ == null) {
            if (((bitField0_ & 0x00000002) == 0x00000002) &&
                forward_ != skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.getDefaultInstance()) {
              forward_ =
                skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.newBuilder(forward_).mergeFrom(value).buildPartial();
            } else {
              forward_ = value;
            }
            onChanged();
          } else {
            forwardBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00000002;
          return this;
        }
        /**
         * optional .CMsgVector forward = 2;
         */
        public Builder clearForward() {
          if (forwardBuilder_ == null) {
            forward_ = skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.getDefaultInstance();
            onChanged();
          } else {
            forwardBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000002);
          return this;
        }
        /**
         * optional .CMsgVector forward = 2;
         */
        public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder getForwardBuilder() {
          bitField0_ |= 0x00000002;
          onChanged();
          return getForwardFieldBuilder().getBuilder();
        }
        /**
         * optional .CMsgVector forward = 2;
         */
        public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder getForwardOrBuilder() {
          if (forwardBuilder_ != null) {
            return forwardBuilder_.getMessageOrBuilder();
          } else {
            return forward_;
          }
        }
        /**
         * optional .CMsgVector forward = 2;
         */
        private com.google.protobuf.SingleFieldBuilder<
            skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder> 
            getForwardFieldBuilder() {
          if (forwardBuilder_ == null) {
            forwardBuilder_ = new com.google.protobuf.SingleFieldBuilder<
                skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder>(
                    getForward(),
                    getParentForChildren(),
                    isClean());
            forward_ = null;
          }
          return forwardBuilder_;
        }

        private skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector right_ = skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.getDefaultInstance();
        private com.google.protobuf.SingleFieldBuilder<
            skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder> rightBuilder_;
        /**
         * optional .CMsgVector right = 3 [deprecated = true];
         */
        @java.lang.Deprecated public boolean hasRight() {
          return ((bitField0_ & 0x00000004) == 0x00000004);
        }
        /**
         * optional .CMsgVector right = 3 [deprecated = true];
         */
        @java.lang.Deprecated public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector getRight() {
          if (rightBuilder_ == null) {
            return right_;
          } else {
            return rightBuilder_.getMessage();
          }
        }
        /**
         * optional .CMsgVector right = 3 [deprecated = true];
         */
        @java.lang.Deprecated public Builder setRight(skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector value) {
          if (rightBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            right_ = value;
            onChanged();
          } else {
            rightBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000004;
          return this;
        }
        /**
         * optional .CMsgVector right = 3 [deprecated = true];
         */
        @java.lang.Deprecated public Builder setRight(
            skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder builderForValue) {
          if (rightBuilder_ == null) {
            right_ = builderForValue.build();
            onChanged();
          } else {
            rightBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000004;
          return this;
        }
        /**
         * optional .CMsgVector right = 3 [deprecated = true];
         */
        @java.lang.Deprecated public Builder mergeRight(skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector value) {
          if (rightBuilder_ == null) {
            if (((bitField0_ & 0x00000004) == 0x00000004) &&
                right_ != skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.getDefaultInstance()) {
              right_ =
                skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.newBuilder(right_).mergeFrom(value).buildPartial();
            } else {
              right_ = value;
            }
            onChanged();
          } else {
            rightBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00000004;
          return this;
        }
        /**
         * optional .CMsgVector right = 3 [deprecated = true];
         */
        @java.lang.Deprecated public Builder clearRight() {
          if (rightBuilder_ == null) {
            right_ = skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.getDefaultInstance();
            onChanged();
          } else {
            rightBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000004);
          return this;
        }
        /**
         * optional .CMsgVector right = 3 [deprecated = true];
         */
        @java.lang.Deprecated public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder getRightBuilder() {
          bitField0_ |= 0x00000004;
          onChanged();
          return getRightFieldBuilder().getBuilder();
        }
        /**
         * optional .CMsgVector right = 3 [deprecated = true];
         */
        @java.lang.Deprecated public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder getRightOrBuilder() {
          if (rightBuilder_ != null) {
            return rightBuilder_.getMessageOrBuilder();
          } else {
            return right_;
          }
        }
        /**
         * optional .CMsgVector right = 3 [deprecated = true];
         */
        private com.google.protobuf.SingleFieldBuilder<
            skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder> 
            getRightFieldBuilder() {
          if (rightBuilder_ == null) {
            rightBuilder_ = new com.google.protobuf.SingleFieldBuilder<
                skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder>(
                    getRight(),
                    getParentForChildren(),
                    isClean());
            right_ = null;
          }
          return rightBuilder_;
        }

        private skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector up_ = skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.getDefaultInstance();
        private com.google.protobuf.SingleFieldBuilder<
            skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder> upBuilder_;
        /**
         * optional .CMsgVector up = 4;
         */
        public boolean hasUp() {
          return ((bitField0_ & 0x00000008) == 0x00000008);
        }
        /**
         * optional .CMsgVector up = 4;
         */
        public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector getUp() {
          if (upBuilder_ == null) {
            return up_;
          } else {
            return upBuilder_.getMessage();
          }
        }
        /**
         * optional .CMsgVector up = 4;
         */
        public Builder setUp(skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector value) {
          if (upBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            up_ = value;
            onChanged();
          } else {
            upBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000008;
          return this;
        }
        /**
         * optional .CMsgVector up = 4;
         */
        public Builder setUp(
            skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder builderForValue) {
          if (upBuilder_ == null) {
            up_ = builderForValue.build();
            onChanged();
          } else {
            upBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000008;
          return this;
        }
        /**
         * optional .CMsgVector up = 4;
         */
        public Builder mergeUp(skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector value) {
          if (upBuilder_ == null) {
            if (((bitField0_ & 0x00000008) == 0x00000008) &&
                up_ != skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.getDefaultInstance()) {
              up_ =
                skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.newBuilder(up_).mergeFrom(value).buildPartial();
            } else {
              up_ = value;
            }
            onChanged();
          } else {
            upBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00000008;
          return this;
        }
        /**
         * optional .CMsgVector up = 4;
         */
        public Builder clearUp() {
          if (upBuilder_ == null) {
            up_ = skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.getDefaultInstance();
            onChanged();
          } else {
            upBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000008);
          return this;
        }
        /**
         * optional .CMsgVector up = 4;
         */
        public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder getUpBuilder() {
          bitField0_ |= 0x00000008;
          onChanged();
          return getUpFieldBuilder().getBuilder();
        }
        /**
         * optional .CMsgVector up = 4;
         */
        public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder getUpOrBuilder() {
          if (upBuilder_ != null) {
            return upBuilder_.getMessageOrBuilder();
          } else {
            return up_;
          }
        }
        /**
         * optional .CMsgVector up = 4;
         */
        private com.google.protobuf.SingleFieldBuilder<
            skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder> 
            getUpFieldBuilder() {
          if (upBuilder_ == null) {
            upBuilder_ = new com.google.protobuf.SingleFieldBuilder<
                skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder>(
                    getUp(),
                    getParentForChildren(),
                    isClean());
            up_ = null;
          }
          return upBuilder_;
        }

        private skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector left_ = skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.getDefaultInstance();
        private com.google.protobuf.SingleFieldBuilder<
            skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder> leftBuilder_;
        /**
         * optional .CMsgVector left = 5;
         */
        public boolean hasLeft() {
          return ((bitField0_ & 0x00000010) == 0x00000010);
        }
        /**
         * optional .CMsgVector left = 5;
         */
        public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector getLeft() {
          if (leftBuilder_ == null) {
            return left_;
          } else {
            return leftBuilder_.getMessage();
          }
        }
        /**
         * optional .CMsgVector left = 5;
         */
        public Builder setLeft(skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector value) {
          if (leftBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            left_ = value;
            onChanged();
          } else {
            leftBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000010;
          return this;
        }
        /**
         * optional .CMsgVector left = 5;
         */
        public Builder setLeft(
            skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder builderForValue) {
          if (leftBuilder_ == null) {
            left_ = builderForValue.build();
            onChanged();
          } else {
            leftBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000010;
          return this;
        }
        /**
         * optional .CMsgVector left = 5;
         */
        public Builder mergeLeft(skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector value) {
          if (leftBuilder_ == null) {
            if (((bitField0_ & 0x00000010) == 0x00000010) &&
                left_ != skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.getDefaultInstance()) {
              left_ =
                skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.newBuilder(left_).mergeFrom(value).buildPartial();
            } else {
              left_ = value;
            }
            onChanged();
          } else {
            leftBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00000010;
          return this;
        }
        /**
         * optional .CMsgVector left = 5;
         */
        public Builder clearLeft() {
          if (leftBuilder_ == null) {
            left_ = skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.getDefaultInstance();
            onChanged();
          } else {
            leftBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000010);
          return this;
        }
        /**
         * optional .CMsgVector left = 5;
         */
        public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder getLeftBuilder() {
          bitField0_ |= 0x00000010;
          onChanged();
          return getLeftFieldBuilder().getBuilder();
        }
        /**
         * optional .CMsgVector left = 5;
         */
        public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder getLeftOrBuilder() {
          if (leftBuilder_ != null) {
            return leftBuilder_.getMessageOrBuilder();
          } else {
            return left_;
          }
        }
        /**
         * optional .CMsgVector left = 5;
         */
        private com.google.protobuf.SingleFieldBuilder<
            skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder> 
            getLeftFieldBuilder() {
          if (leftBuilder_ == null) {
            leftBuilder_ = new com.google.protobuf.SingleFieldBuilder<
                skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder>(
                    getLeft(),
                    getParentForChildren(),
                    isClean());
            left_ = null;
          }
          return leftBuilder_;
        }

        // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_ParticleManager.UpdateParticleOrient)
      }

      static {
        defaultInstance = new UpdateParticleOrient(true);
        defaultInstance.initFields();
      }

      // @@protoc_insertion_point(class_scope:CDOTAUserMsg_ParticleManager.UpdateParticleOrient)
    }

    public interface UpdateParticleFallbackOrBuilder extends
        // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_ParticleManager.UpdateParticleFallback)
        com.google.protobuf.MessageOrBuilder {

      /**
       * optional int32 control_point = 1;
       */
      boolean hasControlPoint();
      /**
       * optional int32 control_point = 1;
       */
      int getControlPoint();

      /**
       * optional .CMsgVector position = 2;
       */
      boolean hasPosition();
      /**
       * optional .CMsgVector position = 2;
       */
      skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector getPosition();
      /**
       * optional .CMsgVector position = 2;
       */
      skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder getPositionOrBuilder();
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_ParticleManager.UpdateParticleFallback}
     */
    public static final class UpdateParticleFallback extends
        com.google.protobuf.GeneratedMessage implements
        // @@protoc_insertion_point(message_implements:CDOTAUserMsg_ParticleManager.UpdateParticleFallback)
        UpdateParticleFallbackOrBuilder {
      // Use UpdateParticleFallback.newBuilder() to construct.
      private UpdateParticleFallback(com.google.protobuf.GeneratedMessage.Builder builder) {
        super(builder);
        this.unknownFields = builder.getUnknownFields();
      }
      private UpdateParticleFallback(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

      private static final UpdateParticleFallback defaultInstance;
      public static UpdateParticleFallback getDefaultInstance() {
        return defaultInstance;
      }

      public UpdateParticleFallback getDefaultInstanceForType() {
        return defaultInstance;
      }

      private final com.google.protobuf.UnknownFieldSet unknownFields;
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
          getUnknownFields() {
        return this.unknownFields;
      }
      private UpdateParticleFallback(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        initFields();
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
              case 8: {
                bitField0_ |= 0x00000001;
                controlPoint_ = input.readInt32();
                break;
              }
              case 18: {
                skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder subBuilder = null;
                if (((bitField0_ & 0x00000002) == 0x00000002)) {
                  subBuilder = position_.toBuilder();
                }
                position_ = input.readMessage(skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(position_);
                  position_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000002;
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e.getMessage()).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleFallback_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleFallback_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallback.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallback.Builder.class);
      }

      public static com.google.protobuf.Parser PARSER =
          new com.google.protobuf.AbstractParser() {
        public UpdateParticleFallback parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new UpdateParticleFallback(input, extensionRegistry);
        }
      };

      @java.lang.Override
      public com.google.protobuf.Parser getParserForType() {
        return PARSER;
      }

      private int bitField0_;
      public static final int CONTROL_POINT_FIELD_NUMBER = 1;
      private int controlPoint_;
      /**
       * optional int32 control_point = 1;
       */
      public boolean hasControlPoint() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 control_point = 1;
       */
      public int getControlPoint() {
        return controlPoint_;
      }

      public static final int POSITION_FIELD_NUMBER = 2;
      private skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector position_;
      /**
       * optional .CMsgVector position = 2;
       */
      public boolean hasPosition() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional .CMsgVector position = 2;
       */
      public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector getPosition() {
        return position_;
      }
      /**
       * optional .CMsgVector position = 2;
       */
      public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder getPositionOrBuilder() {
        return position_;
      }

      private void initFields() {
        controlPoint_ = 0;
        position_ = skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.getDefaultInstance();
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeInt32(1, controlPoint_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeMessage(2, position_);
        }
        getUnknownFields().writeTo(output);
      }

      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;

        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(1, controlPoint_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(2, position_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.Object writeReplace()
          throws java.io.ObjectStreamException {
        return super.writeReplace();
      }

      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallback parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallback parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallback parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallback parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallback parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallback parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallback parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallback parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallback parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallback parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }

      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallback prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code CDOTAUserMsg_ParticleManager.UpdateParticleFallback}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder implements
          // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_ParticleManager.UpdateParticleFallback)
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallbackOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleFallback_descriptor;
        }

        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleFallback_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallback.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallback.Builder.class);
        }

        // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallback.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
            getPositionFieldBuilder();
          }
        }
        private static Builder create() {
          return new Builder();
        }

        public Builder clear() {
          super.clear();
          controlPoint_ = 0;
          bitField0_ = (bitField0_ & ~0x00000001);
          if (positionBuilder_ == null) {
            position_ = skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.getDefaultInstance();
          } else {
            positionBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000002);
          return this;
        }

        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }

        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleFallback_descriptor;
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallback getDefaultInstanceForType() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallback.getDefaultInstance();
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallback build() {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallback result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallback buildPartial() {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallback result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallback(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.controlPoint_ = controlPoint_;
          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
            to_bitField0_ |= 0x00000002;
          }
          if (positionBuilder_ == null) {
            result.position_ = position_;
          } else {
            result.position_ = positionBuilder_.build();
          }
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }

        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallback) {
            return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallback)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallback other) {
          if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallback.getDefaultInstance()) return this;
          if (other.hasControlPoint()) {
            setControlPoint(other.getControlPoint());
          }
          if (other.hasPosition()) {
            mergePosition(other.getPosition());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }

        public final boolean isInitialized() {
          return true;
        }

        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallback parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallback) e.getUnfinishedMessage();
            throw e;
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        private int controlPoint_ ;
        /**
         * optional int32 control_point = 1;
         */
        public boolean hasControlPoint() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * optional int32 control_point = 1;
         */
        public int getControlPoint() {
          return controlPoint_;
        }
        /**
         * optional int32 control_point = 1;
         */
        public Builder setControlPoint(int value) {
          bitField0_ |= 0x00000001;
          controlPoint_ = value;
          onChanged();
          return this;
        }
        /**
         * optional int32 control_point = 1;
         */
        public Builder clearControlPoint() {
          bitField0_ = (bitField0_ & ~0x00000001);
          controlPoint_ = 0;
          onChanged();
          return this;
        }

        private skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector position_ = skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.getDefaultInstance();
        private com.google.protobuf.SingleFieldBuilder<
            skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder> positionBuilder_;
        /**
         * optional .CMsgVector position = 2;
         */
        public boolean hasPosition() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        /**
         * optional .CMsgVector position = 2;
         */
        public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector getPosition() {
          if (positionBuilder_ == null) {
            return position_;
          } else {
            return positionBuilder_.getMessage();
          }
        }
        /**
         * optional .CMsgVector position = 2;
         */
        public Builder setPosition(skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector value) {
          if (positionBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            position_ = value;
            onChanged();
          } else {
            positionBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000002;
          return this;
        }
        /**
         * optional .CMsgVector position = 2;
         */
        public Builder setPosition(
            skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder builderForValue) {
          if (positionBuilder_ == null) {
            position_ = builderForValue.build();
            onChanged();
          } else {
            positionBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000002;
          return this;
        }
        /**
         * optional .CMsgVector position = 2;
         */
        public Builder mergePosition(skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector value) {
          if (positionBuilder_ == null) {
            if (((bitField0_ & 0x00000002) == 0x00000002) &&
                position_ != skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.getDefaultInstance()) {
              position_ =
                skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.newBuilder(position_).mergeFrom(value).buildPartial();
            } else {
              position_ = value;
            }
            onChanged();
          } else {
            positionBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00000002;
          return this;
        }
        /**
         * optional .CMsgVector position = 2;
         */
        public Builder clearPosition() {
          if (positionBuilder_ == null) {
            position_ = skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.getDefaultInstance();
            onChanged();
          } else {
            positionBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000002);
          return this;
        }
        /**
         * optional .CMsgVector position = 2;
         */
        public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder getPositionBuilder() {
          bitField0_ |= 0x00000002;
          onChanged();
          return getPositionFieldBuilder().getBuilder();
        }
        /**
         * optional .CMsgVector position = 2;
         */
        public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder getPositionOrBuilder() {
          if (positionBuilder_ != null) {
            return positionBuilder_.getMessageOrBuilder();
          } else {
            return position_;
          }
        }
        /**
         * optional .CMsgVector position = 2;
         */
        private com.google.protobuf.SingleFieldBuilder<
            skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder> 
            getPositionFieldBuilder() {
          if (positionBuilder_ == null) {
            positionBuilder_ = new com.google.protobuf.SingleFieldBuilder<
                skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder>(
                    getPosition(),
                    getParentForChildren(),
                    isClean());
            position_ = null;
          }
          return positionBuilder_;
        }

        // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_ParticleManager.UpdateParticleFallback)
      }

      static {
        defaultInstance = new UpdateParticleFallback(true);
        defaultInstance.initFields();
      }

      // @@protoc_insertion_point(class_scope:CDOTAUserMsg_ParticleManager.UpdateParticleFallback)
    }

    public interface UpdateParticleOffsetOrBuilder extends
        // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_ParticleManager.UpdateParticleOffset)
        com.google.protobuf.MessageOrBuilder {

      /**
       * optional int32 control_point = 1;
       */
      boolean hasControlPoint();
      /**
       * optional int32 control_point = 1;
       */
      int getControlPoint();

      /**
       * optional .CMsgVector origin_offset = 2;
       */
      boolean hasOriginOffset();
      /**
       * optional .CMsgVector origin_offset = 2;
       */
      skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector getOriginOffset();
      /**
       * optional .CMsgVector origin_offset = 2;
       */
      skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder getOriginOffsetOrBuilder();

      /**
       * optional .CMsgQAngle angle_offset = 3;
       */
      boolean hasAngleOffset();
      /**
       * optional .CMsgQAngle angle_offset = 3;
       */
      skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgQAngle getAngleOffset();
      /**
       * optional .CMsgQAngle angle_offset = 3;
       */
      skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgQAngleOrBuilder getAngleOffsetOrBuilder();
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_ParticleManager.UpdateParticleOffset}
     */
    public static final class UpdateParticleOffset extends
        com.google.protobuf.GeneratedMessage implements
        // @@protoc_insertion_point(message_implements:CDOTAUserMsg_ParticleManager.UpdateParticleOffset)
        UpdateParticleOffsetOrBuilder {
      // Use UpdateParticleOffset.newBuilder() to construct.
      private UpdateParticleOffset(com.google.protobuf.GeneratedMessage.Builder builder) {
        super(builder);
        this.unknownFields = builder.getUnknownFields();
      }
      private UpdateParticleOffset(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

      private static final UpdateParticleOffset defaultInstance;
      public static UpdateParticleOffset getDefaultInstance() {
        return defaultInstance;
      }

      public UpdateParticleOffset getDefaultInstanceForType() {
        return defaultInstance;
      }

      private final com.google.protobuf.UnknownFieldSet unknownFields;
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
          getUnknownFields() {
        return this.unknownFields;
      }
      private UpdateParticleOffset(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        initFields();
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
              case 8: {
                bitField0_ |= 0x00000001;
                controlPoint_ = input.readInt32();
                break;
              }
              case 18: {
                skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder subBuilder = null;
                if (((bitField0_ & 0x00000002) == 0x00000002)) {
                  subBuilder = originOffset_.toBuilder();
                }
                originOffset_ = input.readMessage(skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(originOffset_);
                  originOffset_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000002;
                break;
              }
              case 26: {
                skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgQAngle.Builder subBuilder = null;
                if (((bitField0_ & 0x00000004) == 0x00000004)) {
                  subBuilder = angleOffset_.toBuilder();
                }
                angleOffset_ = input.readMessage(skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgQAngle.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(angleOffset_);
                  angleOffset_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000004;
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e.getMessage()).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleOffset_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleOffset_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffset.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffset.Builder.class);
      }

      public static com.google.protobuf.Parser PARSER =
          new com.google.protobuf.AbstractParser() {
        public UpdateParticleOffset parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new UpdateParticleOffset(input, extensionRegistry);
        }
      };

      @java.lang.Override
      public com.google.protobuf.Parser getParserForType() {
        return PARSER;
      }

      private int bitField0_;
      public static final int CONTROL_POINT_FIELD_NUMBER = 1;
      private int controlPoint_;
      /**
       * optional int32 control_point = 1;
       */
      public boolean hasControlPoint() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 control_point = 1;
       */
      public int getControlPoint() {
        return controlPoint_;
      }

      public static final int ORIGIN_OFFSET_FIELD_NUMBER = 2;
      private skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector originOffset_;
      /**
       * optional .CMsgVector origin_offset = 2;
       */
      public boolean hasOriginOffset() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional .CMsgVector origin_offset = 2;
       */
      public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector getOriginOffset() {
        return originOffset_;
      }
      /**
       * optional .CMsgVector origin_offset = 2;
       */
      public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder getOriginOffsetOrBuilder() {
        return originOffset_;
      }

      public static final int ANGLE_OFFSET_FIELD_NUMBER = 3;
      private skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgQAngle angleOffset_;
      /**
       * optional .CMsgQAngle angle_offset = 3;
       */
      public boolean hasAngleOffset() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional .CMsgQAngle angle_offset = 3;
       */
      public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgQAngle getAngleOffset() {
        return angleOffset_;
      }
      /**
       * optional .CMsgQAngle angle_offset = 3;
       */
      public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgQAngleOrBuilder getAngleOffsetOrBuilder() {
        return angleOffset_;
      }

      private void initFields() {
        controlPoint_ = 0;
        originOffset_ = skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.getDefaultInstance();
        angleOffset_ = skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgQAngle.getDefaultInstance();
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeInt32(1, controlPoint_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeMessage(2, originOffset_);
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          output.writeMessage(3, angleOffset_);
        }
        getUnknownFields().writeTo(output);
      }

      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;

        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(1, controlPoint_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(2, originOffset_);
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(3, angleOffset_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.Object writeReplace()
          throws java.io.ObjectStreamException {
        return super.writeReplace();
      }

      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffset parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffset parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffset parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffset parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffset parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffset parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffset parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffset parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffset parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffset parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }

      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffset prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code CDOTAUserMsg_ParticleManager.UpdateParticleOffset}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder implements
          // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_ParticleManager.UpdateParticleOffset)
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffsetOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleOffset_descriptor;
        }

        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleOffset_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffset.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffset.Builder.class);
        }

        // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffset.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
            getOriginOffsetFieldBuilder();
            getAngleOffsetFieldBuilder();
          }
        }
        private static Builder create() {
          return new Builder();
        }

        public Builder clear() {
          super.clear();
          controlPoint_ = 0;
          bitField0_ = (bitField0_ & ~0x00000001);
          if (originOffsetBuilder_ == null) {
            originOffset_ = skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.getDefaultInstance();
          } else {
            originOffsetBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000002);
          if (angleOffsetBuilder_ == null) {
            angleOffset_ = skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgQAngle.getDefaultInstance();
          } else {
            angleOffsetBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000004);
          return this;
        }

        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }

        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleOffset_descriptor;
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffset getDefaultInstanceForType() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffset.getDefaultInstance();
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffset build() {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffset result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffset buildPartial() {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffset result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffset(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.controlPoint_ = controlPoint_;
          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
            to_bitField0_ |= 0x00000002;
          }
          if (originOffsetBuilder_ == null) {
            result.originOffset_ = originOffset_;
          } else {
            result.originOffset_ = originOffsetBuilder_.build();
          }
          if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
            to_bitField0_ |= 0x00000004;
          }
          if (angleOffsetBuilder_ == null) {
            result.angleOffset_ = angleOffset_;
          } else {
            result.angleOffset_ = angleOffsetBuilder_.build();
          }
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }

        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffset) {
            return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffset)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffset other) {
          if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffset.getDefaultInstance()) return this;
          if (other.hasControlPoint()) {
            setControlPoint(other.getControlPoint());
          }
          if (other.hasOriginOffset()) {
            mergeOriginOffset(other.getOriginOffset());
          }
          if (other.hasAngleOffset()) {
            mergeAngleOffset(other.getAngleOffset());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }

        public final boolean isInitialized() {
          return true;
        }

        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffset parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffset) e.getUnfinishedMessage();
            throw e;
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        private int controlPoint_ ;
        /**
         * optional int32 control_point = 1;
         */
        public boolean hasControlPoint() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * optional int32 control_point = 1;
         */
        public int getControlPoint() {
          return controlPoint_;
        }
        /**
         * optional int32 control_point = 1;
         */
        public Builder setControlPoint(int value) {
          bitField0_ |= 0x00000001;
          controlPoint_ = value;
          onChanged();
          return this;
        }
        /**
         * optional int32 control_point = 1;
         */
        public Builder clearControlPoint() {
          bitField0_ = (bitField0_ & ~0x00000001);
          controlPoint_ = 0;
          onChanged();
          return this;
        }

        private skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector originOffset_ = skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.getDefaultInstance();
        private com.google.protobuf.SingleFieldBuilder<
            skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder> originOffsetBuilder_;
        /**
         * optional .CMsgVector origin_offset = 2;
         */
        public boolean hasOriginOffset() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        /**
         * optional .CMsgVector origin_offset = 2;
         */
        public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector getOriginOffset() {
          if (originOffsetBuilder_ == null) {
            return originOffset_;
          } else {
            return originOffsetBuilder_.getMessage();
          }
        }
        /**
         * optional .CMsgVector origin_offset = 2;
         */
        public Builder setOriginOffset(skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector value) {
          if (originOffsetBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            originOffset_ = value;
            onChanged();
          } else {
            originOffsetBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000002;
          return this;
        }
        /**
         * optional .CMsgVector origin_offset = 2;
         */
        public Builder setOriginOffset(
            skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder builderForValue) {
          if (originOffsetBuilder_ == null) {
            originOffset_ = builderForValue.build();
            onChanged();
          } else {
            originOffsetBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000002;
          return this;
        }
        /**
         * optional .CMsgVector origin_offset = 2;
         */
        public Builder mergeOriginOffset(skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector value) {
          if (originOffsetBuilder_ == null) {
            if (((bitField0_ & 0x00000002) == 0x00000002) &&
                originOffset_ != skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.getDefaultInstance()) {
              originOffset_ =
                skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.newBuilder(originOffset_).mergeFrom(value).buildPartial();
            } else {
              originOffset_ = value;
            }
            onChanged();
          } else {
            originOffsetBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00000002;
          return this;
        }
        /**
         * optional .CMsgVector origin_offset = 2;
         */
        public Builder clearOriginOffset() {
          if (originOffsetBuilder_ == null) {
            originOffset_ = skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.getDefaultInstance();
            onChanged();
          } else {
            originOffsetBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000002);
          return this;
        }
        /**
         * optional .CMsgVector origin_offset = 2;
         */
        public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder getOriginOffsetBuilder() {
          bitField0_ |= 0x00000002;
          onChanged();
          return getOriginOffsetFieldBuilder().getBuilder();
        }
        /**
         * optional .CMsgVector origin_offset = 2;
         */
        public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder getOriginOffsetOrBuilder() {
          if (originOffsetBuilder_ != null) {
            return originOffsetBuilder_.getMessageOrBuilder();
          } else {
            return originOffset_;
          }
        }
        /**
         * optional .CMsgVector origin_offset = 2;
         */
        private com.google.protobuf.SingleFieldBuilder<
            skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder> 
            getOriginOffsetFieldBuilder() {
          if (originOffsetBuilder_ == null) {
            originOffsetBuilder_ = new com.google.protobuf.SingleFieldBuilder<
                skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder>(
                    getOriginOffset(),
                    getParentForChildren(),
                    isClean());
            originOffset_ = null;
          }
          return originOffsetBuilder_;
        }

        private skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgQAngle angleOffset_ = skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgQAngle.getDefaultInstance();
        private com.google.protobuf.SingleFieldBuilder<
            skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgQAngle, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgQAngle.Builder, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgQAngleOrBuilder> angleOffsetBuilder_;
        /**
         * optional .CMsgQAngle angle_offset = 3;
         */
        public boolean hasAngleOffset() {
          return ((bitField0_ & 0x00000004) == 0x00000004);
        }
        /**
         * optional .CMsgQAngle angle_offset = 3;
         */
        public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgQAngle getAngleOffset() {
          if (angleOffsetBuilder_ == null) {
            return angleOffset_;
          } else {
            return angleOffsetBuilder_.getMessage();
          }
        }
        /**
         * optional .CMsgQAngle angle_offset = 3;
         */
        public Builder setAngleOffset(skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgQAngle value) {
          if (angleOffsetBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            angleOffset_ = value;
            onChanged();
          } else {
            angleOffsetBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000004;
          return this;
        }
        /**
         * optional .CMsgQAngle angle_offset = 3;
         */
        public Builder setAngleOffset(
            skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgQAngle.Builder builderForValue) {
          if (angleOffsetBuilder_ == null) {
            angleOffset_ = builderForValue.build();
            onChanged();
          } else {
            angleOffsetBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000004;
          return this;
        }
        /**
         * optional .CMsgQAngle angle_offset = 3;
         */
        public Builder mergeAngleOffset(skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgQAngle value) {
          if (angleOffsetBuilder_ == null) {
            if (((bitField0_ & 0x00000004) == 0x00000004) &&
                angleOffset_ != skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgQAngle.getDefaultInstance()) {
              angleOffset_ =
                skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgQAngle.newBuilder(angleOffset_).mergeFrom(value).buildPartial();
            } else {
              angleOffset_ = value;
            }
            onChanged();
          } else {
            angleOffsetBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00000004;
          return this;
        }
        /**
         * optional .CMsgQAngle angle_offset = 3;
         */
        public Builder clearAngleOffset() {
          if (angleOffsetBuilder_ == null) {
            angleOffset_ = skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgQAngle.getDefaultInstance();
            onChanged();
          } else {
            angleOffsetBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000004);
          return this;
        }
        /**
         * optional .CMsgQAngle angle_offset = 3;
         */
        public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgQAngle.Builder getAngleOffsetBuilder() {
          bitField0_ |= 0x00000004;
          onChanged();
          return getAngleOffsetFieldBuilder().getBuilder();
        }
        /**
         * optional .CMsgQAngle angle_offset = 3;
         */
        public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgQAngleOrBuilder getAngleOffsetOrBuilder() {
          if (angleOffsetBuilder_ != null) {
            return angleOffsetBuilder_.getMessageOrBuilder();
          } else {
            return angleOffset_;
          }
        }
        /**
         * optional .CMsgQAngle angle_offset = 3;
         */
        private com.google.protobuf.SingleFieldBuilder<
            skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgQAngle, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgQAngle.Builder, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgQAngleOrBuilder> 
            getAngleOffsetFieldBuilder() {
          if (angleOffsetBuilder_ == null) {
            angleOffsetBuilder_ = new com.google.protobuf.SingleFieldBuilder<
                skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgQAngle, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgQAngle.Builder, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgQAngleOrBuilder>(
                    getAngleOffset(),
                    getParentForChildren(),
                    isClean());
            angleOffset_ = null;
          }
          return angleOffsetBuilder_;
        }

        // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_ParticleManager.UpdateParticleOffset)
      }

      static {
        defaultInstance = new UpdateParticleOffset(true);
        defaultInstance.initFields();
      }

      // @@protoc_insertion_point(class_scope:CDOTAUserMsg_ParticleManager.UpdateParticleOffset)
    }

    public interface UpdateParticleEntOrBuilder extends
        // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_ParticleManager.UpdateParticleEnt)
        com.google.protobuf.MessageOrBuilder {

      /**
       * optional int32 control_point = 1;
       */
      boolean hasControlPoint();
      /**
       * optional int32 control_point = 1;
       */
      int getControlPoint();

      /**
       * optional int32 entity_handle = 2;
       */
      boolean hasEntityHandle();
      /**
       * optional int32 entity_handle = 2;
       */
      int getEntityHandle();

      /**
       * optional int32 attach_type = 3;
       */
      boolean hasAttachType();
      /**
       * optional int32 attach_type = 3;
       */
      int getAttachType();

      /**
       * optional int32 attachment = 4;
       */
      boolean hasAttachment();
      /**
       * optional int32 attachment = 4;
       */
      int getAttachment();

      /**
       * optional .CMsgVector fallback_position = 5;
       */
      boolean hasFallbackPosition();
      /**
       * optional .CMsgVector fallback_position = 5;
       */
      skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector getFallbackPosition();
      /**
       * optional .CMsgVector fallback_position = 5;
       */
      skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder getFallbackPositionOrBuilder();

      /**
       * optional bool include_wearables = 6;
       */
      boolean hasIncludeWearables();
      /**
       * optional bool include_wearables = 6;
       */
      boolean getIncludeWearables();
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_ParticleManager.UpdateParticleEnt}
     */
    public static final class UpdateParticleEnt extends
        com.google.protobuf.GeneratedMessage implements
        // @@protoc_insertion_point(message_implements:CDOTAUserMsg_ParticleManager.UpdateParticleEnt)
        UpdateParticleEntOrBuilder {
      // Use UpdateParticleEnt.newBuilder() to construct.
      private UpdateParticleEnt(com.google.protobuf.GeneratedMessage.Builder builder) {
        super(builder);
        this.unknownFields = builder.getUnknownFields();
      }
      private UpdateParticleEnt(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

      private static final UpdateParticleEnt defaultInstance;
      public static UpdateParticleEnt getDefaultInstance() {
        return defaultInstance;
      }

      public UpdateParticleEnt getDefaultInstanceForType() {
        return defaultInstance;
      }

      private final com.google.protobuf.UnknownFieldSet unknownFields;
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
          getUnknownFields() {
        return this.unknownFields;
      }
      private UpdateParticleEnt(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        initFields();
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
              case 8: {
                bitField0_ |= 0x00000001;
                controlPoint_ = input.readInt32();
                break;
              }
              case 16: {
                bitField0_ |= 0x00000002;
                entityHandle_ = input.readInt32();
                break;
              }
              case 24: {
                bitField0_ |= 0x00000004;
                attachType_ = input.readInt32();
                break;
              }
              case 32: {
                bitField0_ |= 0x00000008;
                attachment_ = input.readInt32();
                break;
              }
              case 42: {
                skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder subBuilder = null;
                if (((bitField0_ & 0x00000010) == 0x00000010)) {
                  subBuilder = fallbackPosition_.toBuilder();
                }
                fallbackPosition_ = input.readMessage(skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(fallbackPosition_);
                  fallbackPosition_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000010;
                break;
              }
              case 48: {
                bitField0_ |= 0x00000020;
                includeWearables_ = input.readBool();
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e.getMessage()).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleEnt_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleEnt_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleEnt.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleEnt.Builder.class);
      }

      public static com.google.protobuf.Parser PARSER =
          new com.google.protobuf.AbstractParser() {
        public UpdateParticleEnt parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new UpdateParticleEnt(input, extensionRegistry);
        }
      };

      @java.lang.Override
      public com.google.protobuf.Parser getParserForType() {
        return PARSER;
      }

      private int bitField0_;
      public static final int CONTROL_POINT_FIELD_NUMBER = 1;
      private int controlPoint_;
      /**
       * optional int32 control_point = 1;
       */
      public boolean hasControlPoint() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 control_point = 1;
       */
      public int getControlPoint() {
        return controlPoint_;
      }

      public static final int ENTITY_HANDLE_FIELD_NUMBER = 2;
      private int entityHandle_;
      /**
       * optional int32 entity_handle = 2;
       */
      public boolean hasEntityHandle() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional int32 entity_handle = 2;
       */
      public int getEntityHandle() {
        return entityHandle_;
      }

      public static final int ATTACH_TYPE_FIELD_NUMBER = 3;
      private int attachType_;
      /**
       * optional int32 attach_type = 3;
       */
      public boolean hasAttachType() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional int32 attach_type = 3;
       */
      public int getAttachType() {
        return attachType_;
      }

      public static final int ATTACHMENT_FIELD_NUMBER = 4;
      private int attachment_;
      /**
       * optional int32 attachment = 4;
       */
      public boolean hasAttachment() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional int32 attachment = 4;
       */
      public int getAttachment() {
        return attachment_;
      }

      public static final int FALLBACK_POSITION_FIELD_NUMBER = 5;
      private skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector fallbackPosition_;
      /**
       * optional .CMsgVector fallback_position = 5;
       */
      public boolean hasFallbackPosition() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * optional .CMsgVector fallback_position = 5;
       */
      public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector getFallbackPosition() {
        return fallbackPosition_;
      }
      /**
       * optional .CMsgVector fallback_position = 5;
       */
      public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder getFallbackPositionOrBuilder() {
        return fallbackPosition_;
      }

      public static final int INCLUDE_WEARABLES_FIELD_NUMBER = 6;
      private boolean includeWearables_;
      /**
       * optional bool include_wearables = 6;
       */
      public boolean hasIncludeWearables() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * optional bool include_wearables = 6;
       */
      public boolean getIncludeWearables() {
        return includeWearables_;
      }

      private void initFields() {
        controlPoint_ = 0;
        entityHandle_ = 0;
        attachType_ = 0;
        attachment_ = 0;
        fallbackPosition_ = skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.getDefaultInstance();
        includeWearables_ = false;
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeInt32(1, controlPoint_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeInt32(2, entityHandle_);
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          output.writeInt32(3, attachType_);
        }
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          output.writeInt32(4, attachment_);
        }
        if (((bitField0_ & 0x00000010) == 0x00000010)) {
          output.writeMessage(5, fallbackPosition_);
        }
        if (((bitField0_ & 0x00000020) == 0x00000020)) {
          output.writeBool(6, includeWearables_);
        }
        getUnknownFields().writeTo(output);
      }

      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;

        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(1, controlPoint_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(2, entityHandle_);
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(3, attachType_);
        }
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(4, attachment_);
        }
        if (((bitField0_ & 0x00000010) == 0x00000010)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(5, fallbackPosition_);
        }
        if (((bitField0_ & 0x00000020) == 0x00000020)) {
          size += com.google.protobuf.CodedOutputStream
            .computeBoolSize(6, includeWearables_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.Object writeReplace()
          throws java.io.ObjectStreamException {
        return super.writeReplace();
      }

      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleEnt parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleEnt parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleEnt parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleEnt parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleEnt parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleEnt parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleEnt parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleEnt parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleEnt parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleEnt parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }

      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleEnt prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code CDOTAUserMsg_ParticleManager.UpdateParticleEnt}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder implements
          // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_ParticleManager.UpdateParticleEnt)
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleEntOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleEnt_descriptor;
        }

        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleEnt_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleEnt.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleEnt.Builder.class);
        }

        // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleEnt.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
            getFallbackPositionFieldBuilder();
          }
        }
        private static Builder create() {
          return new Builder();
        }

        public Builder clear() {
          super.clear();
          controlPoint_ = 0;
          bitField0_ = (bitField0_ & ~0x00000001);
          entityHandle_ = 0;
          bitField0_ = (bitField0_ & ~0x00000002);
          attachType_ = 0;
          bitField0_ = (bitField0_ & ~0x00000004);
          attachment_ = 0;
          bitField0_ = (bitField0_ & ~0x00000008);
          if (fallbackPositionBuilder_ == null) {
            fallbackPosition_ = skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.getDefaultInstance();
          } else {
            fallbackPositionBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000010);
          includeWearables_ = false;
          bitField0_ = (bitField0_ & ~0x00000020);
          return this;
        }

        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }

        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleEnt_descriptor;
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleEnt getDefaultInstanceForType() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleEnt.getDefaultInstance();
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleEnt build() {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleEnt result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleEnt buildPartial() {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleEnt result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleEnt(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.controlPoint_ = controlPoint_;
          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
            to_bitField0_ |= 0x00000002;
          }
          result.entityHandle_ = entityHandle_;
          if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
            to_bitField0_ |= 0x00000004;
          }
          result.attachType_ = attachType_;
          if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
            to_bitField0_ |= 0x00000008;
          }
          result.attachment_ = attachment_;
          if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
            to_bitField0_ |= 0x00000010;
          }
          if (fallbackPositionBuilder_ == null) {
            result.fallbackPosition_ = fallbackPosition_;
          } else {
            result.fallbackPosition_ = fallbackPositionBuilder_.build();
          }
          if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
            to_bitField0_ |= 0x00000020;
          }
          result.includeWearables_ = includeWearables_;
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }

        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleEnt) {
            return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleEnt)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleEnt other) {
          if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleEnt.getDefaultInstance()) return this;
          if (other.hasControlPoint()) {
            setControlPoint(other.getControlPoint());
          }
          if (other.hasEntityHandle()) {
            setEntityHandle(other.getEntityHandle());
          }
          if (other.hasAttachType()) {
            setAttachType(other.getAttachType());
          }
          if (other.hasAttachment()) {
            setAttachment(other.getAttachment());
          }
          if (other.hasFallbackPosition()) {
            mergeFallbackPosition(other.getFallbackPosition());
          }
          if (other.hasIncludeWearables()) {
            setIncludeWearables(other.getIncludeWearables());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }

        public final boolean isInitialized() {
          return true;
        }

        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleEnt parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleEnt) e.getUnfinishedMessage();
            throw e;
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        private int controlPoint_ ;
        /**
         * optional int32 control_point = 1;
         */
        public boolean hasControlPoint() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * optional int32 control_point = 1;
         */
        public int getControlPoint() {
          return controlPoint_;
        }
        /**
         * optional int32 control_point = 1;
         */
        public Builder setControlPoint(int value) {
          bitField0_ |= 0x00000001;
          controlPoint_ = value;
          onChanged();
          return this;
        }
        /**
         * optional int32 control_point = 1;
         */
        public Builder clearControlPoint() {
          bitField0_ = (bitField0_ & ~0x00000001);
          controlPoint_ = 0;
          onChanged();
          return this;
        }

        private int entityHandle_ ;
        /**
         * optional int32 entity_handle = 2;
         */
        public boolean hasEntityHandle() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        /**
         * optional int32 entity_handle = 2;
         */
        public int getEntityHandle() {
          return entityHandle_;
        }
        /**
         * optional int32 entity_handle = 2;
         */
        public Builder setEntityHandle(int value) {
          bitField0_ |= 0x00000002;
          entityHandle_ = value;
          onChanged();
          return this;
        }
        /**
         * optional int32 entity_handle = 2;
         */
        public Builder clearEntityHandle() {
          bitField0_ = (bitField0_ & ~0x00000002);
          entityHandle_ = 0;
          onChanged();
          return this;
        }

        private int attachType_ ;
        /**
         * optional int32 attach_type = 3;
         */
        public boolean hasAttachType() {
          return ((bitField0_ & 0x00000004) == 0x00000004);
        }
        /**
         * optional int32 attach_type = 3;
         */
        public int getAttachType() {
          return attachType_;
        }
        /**
         * optional int32 attach_type = 3;
         */
        public Builder setAttachType(int value) {
          bitField0_ |= 0x00000004;
          attachType_ = value;
          onChanged();
          return this;
        }
        /**
         * optional int32 attach_type = 3;
         */
        public Builder clearAttachType() {
          bitField0_ = (bitField0_ & ~0x00000004);
          attachType_ = 0;
          onChanged();
          return this;
        }

        private int attachment_ ;
        /**
         * optional int32 attachment = 4;
         */
        public boolean hasAttachment() {
          return ((bitField0_ & 0x00000008) == 0x00000008);
        }
        /**
         * optional int32 attachment = 4;
         */
        public int getAttachment() {
          return attachment_;
        }
        /**
         * optional int32 attachment = 4;
         */
        public Builder setAttachment(int value) {
          bitField0_ |= 0x00000008;
          attachment_ = value;
          onChanged();
          return this;
        }
        /**
         * optional int32 attachment = 4;
         */
        public Builder clearAttachment() {
          bitField0_ = (bitField0_ & ~0x00000008);
          attachment_ = 0;
          onChanged();
          return this;
        }

        private skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector fallbackPosition_ = skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.getDefaultInstance();
        private com.google.protobuf.SingleFieldBuilder<
            skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder> fallbackPositionBuilder_;
        /**
         * optional .CMsgVector fallback_position = 5;
         */
        public boolean hasFallbackPosition() {
          return ((bitField0_ & 0x00000010) == 0x00000010);
        }
        /**
         * optional .CMsgVector fallback_position = 5;
         */
        public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector getFallbackPosition() {
          if (fallbackPositionBuilder_ == null) {
            return fallbackPosition_;
          } else {
            return fallbackPositionBuilder_.getMessage();
          }
        }
        /**
         * optional .CMsgVector fallback_position = 5;
         */
        public Builder setFallbackPosition(skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector value) {
          if (fallbackPositionBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            fallbackPosition_ = value;
            onChanged();
          } else {
            fallbackPositionBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000010;
          return this;
        }
        /**
         * optional .CMsgVector fallback_position = 5;
         */
        public Builder setFallbackPosition(
            skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder builderForValue) {
          if (fallbackPositionBuilder_ == null) {
            fallbackPosition_ = builderForValue.build();
            onChanged();
          } else {
            fallbackPositionBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000010;
          return this;
        }
        /**
         * optional .CMsgVector fallback_position = 5;
         */
        public Builder mergeFallbackPosition(skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector value) {
          if (fallbackPositionBuilder_ == null) {
            if (((bitField0_ & 0x00000010) == 0x00000010) &&
                fallbackPosition_ != skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.getDefaultInstance()) {
              fallbackPosition_ =
                skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.newBuilder(fallbackPosition_).mergeFrom(value).buildPartial();
            } else {
              fallbackPosition_ = value;
            }
            onChanged();
          } else {
            fallbackPositionBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00000010;
          return this;
        }
        /**
         * optional .CMsgVector fallback_position = 5;
         */
        public Builder clearFallbackPosition() {
          if (fallbackPositionBuilder_ == null) {
            fallbackPosition_ = skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.getDefaultInstance();
            onChanged();
          } else {
            fallbackPositionBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000010);
          return this;
        }
        /**
         * optional .CMsgVector fallback_position = 5;
         */
        public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder getFallbackPositionBuilder() {
          bitField0_ |= 0x00000010;
          onChanged();
          return getFallbackPositionFieldBuilder().getBuilder();
        }
        /**
         * optional .CMsgVector fallback_position = 5;
         */
        public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder getFallbackPositionOrBuilder() {
          if (fallbackPositionBuilder_ != null) {
            return fallbackPositionBuilder_.getMessageOrBuilder();
          } else {
            return fallbackPosition_;
          }
        }
        /**
         * optional .CMsgVector fallback_position = 5;
         */
        private com.google.protobuf.SingleFieldBuilder<
            skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder> 
            getFallbackPositionFieldBuilder() {
          if (fallbackPositionBuilder_ == null) {
            fallbackPositionBuilder_ = new com.google.protobuf.SingleFieldBuilder<
                skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder>(
                    getFallbackPosition(),
                    getParentForChildren(),
                    isClean());
            fallbackPosition_ = null;
          }
          return fallbackPositionBuilder_;
        }

        private boolean includeWearables_ ;
        /**
         * optional bool include_wearables = 6;
         */
        public boolean hasIncludeWearables() {
          return ((bitField0_ & 0x00000020) == 0x00000020);
        }
        /**
         * optional bool include_wearables = 6;
         */
        public boolean getIncludeWearables() {
          return includeWearables_;
        }
        /**
         * optional bool include_wearables = 6;
         */
        public Builder setIncludeWearables(boolean value) {
          bitField0_ |= 0x00000020;
          includeWearables_ = value;
          onChanged();
          return this;
        }
        /**
         * optional bool include_wearables = 6;
         */
        public Builder clearIncludeWearables() {
          bitField0_ = (bitField0_ & ~0x00000020);
          includeWearables_ = false;
          onChanged();
          return this;
        }

        // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_ParticleManager.UpdateParticleEnt)
      }

      static {
        defaultInstance = new UpdateParticleEnt(true);
        defaultInstance.initFields();
      }

      // @@protoc_insertion_point(class_scope:CDOTAUserMsg_ParticleManager.UpdateParticleEnt)
    }

    public interface UpdateParticleSetFrozenOrBuilder extends
        // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen)
        com.google.protobuf.MessageOrBuilder {

      /**
       * optional bool set_frozen = 1;
       */
      boolean hasSetFrozen();
      /**
       * optional bool set_frozen = 1;
       */
      boolean getSetFrozen();
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen}
     */
    public static final class UpdateParticleSetFrozen extends
        com.google.protobuf.GeneratedMessage implements
        // @@protoc_insertion_point(message_implements:CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen)
        UpdateParticleSetFrozenOrBuilder {
      // Use UpdateParticleSetFrozen.newBuilder() to construct.
      private UpdateParticleSetFrozen(com.google.protobuf.GeneratedMessage.Builder builder) {
        super(builder);
        this.unknownFields = builder.getUnknownFields();
      }
      private UpdateParticleSetFrozen(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

      private static final UpdateParticleSetFrozen defaultInstance;
      public static UpdateParticleSetFrozen getDefaultInstance() {
        return defaultInstance;
      }

      public UpdateParticleSetFrozen getDefaultInstanceForType() {
        return defaultInstance;
      }

      private final com.google.protobuf.UnknownFieldSet unknownFields;
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
          getUnknownFields() {
        return this.unknownFields;
      }
      private UpdateParticleSetFrozen(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        initFields();
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
              case 8: {
                bitField0_ |= 0x00000001;
                setFrozen_ = input.readBool();
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e.getMessage()).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleSetFrozen_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleSetFrozen_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen.Builder.class);
      }

      public static com.google.protobuf.Parser PARSER =
          new com.google.protobuf.AbstractParser() {
        public UpdateParticleSetFrozen parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new UpdateParticleSetFrozen(input, extensionRegistry);
        }
      };

      @java.lang.Override
      public com.google.protobuf.Parser getParserForType() {
        return PARSER;
      }

      private int bitField0_;
      public static final int SET_FROZEN_FIELD_NUMBER = 1;
      private boolean setFrozen_;
      /**
       * optional bool set_frozen = 1;
       */
      public boolean hasSetFrozen() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional bool set_frozen = 1;
       */
      public boolean getSetFrozen() {
        return setFrozen_;
      }

      private void initFields() {
        setFrozen_ = false;
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeBool(1, setFrozen_);
        }
        getUnknownFields().writeTo(output);
      }

      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;

        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeBoolSize(1, setFrozen_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.Object writeReplace()
          throws java.io.ObjectStreamException {
        return super.writeReplace();
      }

      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }

      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder implements
          // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen)
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozenOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleSetFrozen_descriptor;
        }

        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleSetFrozen_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen.Builder.class);
        }

        // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          }
        }
        private static Builder create() {
          return new Builder();
        }

        public Builder clear() {
          super.clear();
          setFrozen_ = false;
          bitField0_ = (bitField0_ & ~0x00000001);
          return this;
        }

        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }

        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleSetFrozen_descriptor;
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen getDefaultInstanceForType() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen.getDefaultInstance();
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen build() {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen buildPartial() {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.setFrozen_ = setFrozen_;
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }

        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen) {
            return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen other) {
          if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen.getDefaultInstance()) return this;
          if (other.hasSetFrozen()) {
            setSetFrozen(other.getSetFrozen());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }

        public final boolean isInitialized() {
          return true;
        }

        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen) e.getUnfinishedMessage();
            throw e;
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        private boolean setFrozen_ ;
        /**
         * optional bool set_frozen = 1;
         */
        public boolean hasSetFrozen() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * optional bool set_frozen = 1;
         */
        public boolean getSetFrozen() {
          return setFrozen_;
        }
        /**
         * optional bool set_frozen = 1;
         */
        public Builder setSetFrozen(boolean value) {
          bitField0_ |= 0x00000001;
          setFrozen_ = value;
          onChanged();
          return this;
        }
        /**
         * optional bool set_frozen = 1;
         */
        public Builder clearSetFrozen() {
          bitField0_ = (bitField0_ & ~0x00000001);
          setFrozen_ = false;
          onChanged();
          return this;
        }

        // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen)
      }

      static {
        defaultInstance = new UpdateParticleSetFrozen(true);
        defaultInstance.initFields();
      }

      // @@protoc_insertion_point(class_scope:CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen)
    }

    public interface UpdateParticleShouldDrawOrBuilder extends
        // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw)
        com.google.protobuf.MessageOrBuilder {

      /**
       * optional bool should_draw = 1;
       */
      boolean hasShouldDraw();
      /**
       * optional bool should_draw = 1;
       */
      boolean getShouldDraw();
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw}
     */
    public static final class UpdateParticleShouldDraw extends
        com.google.protobuf.GeneratedMessage implements
        // @@protoc_insertion_point(message_implements:CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw)
        UpdateParticleShouldDrawOrBuilder {
      // Use UpdateParticleShouldDraw.newBuilder() to construct.
      private UpdateParticleShouldDraw(com.google.protobuf.GeneratedMessage.Builder builder) {
        super(builder);
        this.unknownFields = builder.getUnknownFields();
      }
      private UpdateParticleShouldDraw(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

      private static final UpdateParticleShouldDraw defaultInstance;
      public static UpdateParticleShouldDraw getDefaultInstance() {
        return defaultInstance;
      }

      public UpdateParticleShouldDraw getDefaultInstanceForType() {
        return defaultInstance;
      }

      private final com.google.protobuf.UnknownFieldSet unknownFields;
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
          getUnknownFields() {
        return this.unknownFields;
      }
      private UpdateParticleShouldDraw(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        initFields();
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
              case 8: {
                bitField0_ |= 0x00000001;
                shouldDraw_ = input.readBool();
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e.getMessage()).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleShouldDraw_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleShouldDraw_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw.Builder.class);
      }

      public static com.google.protobuf.Parser PARSER =
          new com.google.protobuf.AbstractParser() {
        public UpdateParticleShouldDraw parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new UpdateParticleShouldDraw(input, extensionRegistry);
        }
      };

      @java.lang.Override
      public com.google.protobuf.Parser getParserForType() {
        return PARSER;
      }

      private int bitField0_;
      public static final int SHOULD_DRAW_FIELD_NUMBER = 1;
      private boolean shouldDraw_;
      /**
       * optional bool should_draw = 1;
       */
      public boolean hasShouldDraw() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional bool should_draw = 1;
       */
      public boolean getShouldDraw() {
        return shouldDraw_;
      }

      private void initFields() {
        shouldDraw_ = false;
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeBool(1, shouldDraw_);
        }
        getUnknownFields().writeTo(output);
      }

      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;

        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeBoolSize(1, shouldDraw_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.Object writeReplace()
          throws java.io.ObjectStreamException {
        return super.writeReplace();
      }

      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }

      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder implements
          // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw)
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDrawOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleShouldDraw_descriptor;
        }

        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleShouldDraw_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw.Builder.class);
        }

        // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          }
        }
        private static Builder create() {
          return new Builder();
        }

        public Builder clear() {
          super.clear();
          shouldDraw_ = false;
          bitField0_ = (bitField0_ & ~0x00000001);
          return this;
        }

        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }

        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleShouldDraw_descriptor;
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw getDefaultInstanceForType() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw.getDefaultInstance();
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw build() {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw buildPartial() {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.shouldDraw_ = shouldDraw_;
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }

        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw) {
            return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw other) {
          if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw.getDefaultInstance()) return this;
          if (other.hasShouldDraw()) {
            setShouldDraw(other.getShouldDraw());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }

        public final boolean isInitialized() {
          return true;
        }

        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw) e.getUnfinishedMessage();
            throw e;
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        private boolean shouldDraw_ ;
        /**
         * optional bool should_draw = 1;
         */
        public boolean hasShouldDraw() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * optional bool should_draw = 1;
         */
        public boolean getShouldDraw() {
          return shouldDraw_;
        }
        /**
         * optional bool should_draw = 1;
         */
        public Builder setShouldDraw(boolean value) {
          bitField0_ |= 0x00000001;
          shouldDraw_ = value;
          onChanged();
          return this;
        }
        /**
         * optional bool should_draw = 1;
         */
        public Builder clearShouldDraw() {
          bitField0_ = (bitField0_ & ~0x00000001);
          shouldDraw_ = false;
          onChanged();
          return this;
        }

        // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw)
      }

      static {
        defaultInstance = new UpdateParticleShouldDraw(true);
        defaultInstance.initFields();
      }

      // @@protoc_insertion_point(class_scope:CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw)
    }

    public interface ChangeControlPointAttachmentOrBuilder extends
        // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_ParticleManager.ChangeControlPointAttachment)
        com.google.protobuf.MessageOrBuilder {

      /**
       * optional int32 attachment_old = 1;
       */
      boolean hasAttachmentOld();
      /**
       * optional int32 attachment_old = 1;
       */
      int getAttachmentOld();

      /**
       * optional int32 attachment_new = 2;
       */
      boolean hasAttachmentNew();
      /**
       * optional int32 attachment_new = 2;
       */
      int getAttachmentNew();

      /**
       * optional int32 entity_handle = 3;
       */
      boolean hasEntityHandle();
      /**
       * optional int32 entity_handle = 3;
       */
      int getEntityHandle();
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_ParticleManager.ChangeControlPointAttachment}
     */
    public static final class ChangeControlPointAttachment extends
        com.google.protobuf.GeneratedMessage implements
        // @@protoc_insertion_point(message_implements:CDOTAUserMsg_ParticleManager.ChangeControlPointAttachment)
        ChangeControlPointAttachmentOrBuilder {
      // Use ChangeControlPointAttachment.newBuilder() to construct.
      private ChangeControlPointAttachment(com.google.protobuf.GeneratedMessage.Builder builder) {
        super(builder);
        this.unknownFields = builder.getUnknownFields();
      }
      private ChangeControlPointAttachment(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

      private static final ChangeControlPointAttachment defaultInstance;
      public static ChangeControlPointAttachment getDefaultInstance() {
        return defaultInstance;
      }

      public ChangeControlPointAttachment getDefaultInstanceForType() {
        return defaultInstance;
      }

      private final com.google.protobuf.UnknownFieldSet unknownFields;
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
          getUnknownFields() {
        return this.unknownFields;
      }
      private ChangeControlPointAttachment(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        initFields();
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
              case 8: {
                bitField0_ |= 0x00000001;
                attachmentOld_ = input.readInt32();
                break;
              }
              case 16: {
                bitField0_ |= 0x00000002;
                attachmentNew_ = input.readInt32();
                break;
              }
              case 24: {
                bitField0_ |= 0x00000004;
                entityHandle_ = input.readInt32();
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e.getMessage()).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_ChangeControlPointAttachment_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_ChangeControlPointAttachment_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ChangeControlPointAttachment.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ChangeControlPointAttachment.Builder.class);
      }

      public static com.google.protobuf.Parser PARSER =
          new com.google.protobuf.AbstractParser() {
        public ChangeControlPointAttachment parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new ChangeControlPointAttachment(input, extensionRegistry);
        }
      };

      @java.lang.Override
      public com.google.protobuf.Parser getParserForType() {
        return PARSER;
      }

      private int bitField0_;
      public static final int ATTACHMENT_OLD_FIELD_NUMBER = 1;
      private int attachmentOld_;
      /**
       * optional int32 attachment_old = 1;
       */
      public boolean hasAttachmentOld() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 attachment_old = 1;
       */
      public int getAttachmentOld() {
        return attachmentOld_;
      }

      public static final int ATTACHMENT_NEW_FIELD_NUMBER = 2;
      private int attachmentNew_;
      /**
       * optional int32 attachment_new = 2;
       */
      public boolean hasAttachmentNew() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional int32 attachment_new = 2;
       */
      public int getAttachmentNew() {
        return attachmentNew_;
      }

      public static final int ENTITY_HANDLE_FIELD_NUMBER = 3;
      private int entityHandle_;
      /**
       * optional int32 entity_handle = 3;
       */
      public boolean hasEntityHandle() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional int32 entity_handle = 3;
       */
      public int getEntityHandle() {
        return entityHandle_;
      }

      private void initFields() {
        attachmentOld_ = 0;
        attachmentNew_ = 0;
        entityHandle_ = 0;
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeInt32(1, attachmentOld_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeInt32(2, attachmentNew_);
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          output.writeInt32(3, entityHandle_);
        }
        getUnknownFields().writeTo(output);
      }

      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;

        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(1, attachmentOld_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(2, attachmentNew_);
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(3, entityHandle_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.Object writeReplace()
          throws java.io.ObjectStreamException {
        return super.writeReplace();
      }

      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ChangeControlPointAttachment parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ChangeControlPointAttachment parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ChangeControlPointAttachment parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ChangeControlPointAttachment parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ChangeControlPointAttachment parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ChangeControlPointAttachment parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ChangeControlPointAttachment parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ChangeControlPointAttachment parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ChangeControlPointAttachment parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ChangeControlPointAttachment parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }

      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ChangeControlPointAttachment prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code CDOTAUserMsg_ParticleManager.ChangeControlPointAttachment}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder implements
          // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_ParticleManager.ChangeControlPointAttachment)
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ChangeControlPointAttachmentOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_ChangeControlPointAttachment_descriptor;
        }

        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_ChangeControlPointAttachment_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ChangeControlPointAttachment.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ChangeControlPointAttachment.Builder.class);
        }

        // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ChangeControlPointAttachment.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          }
        }
        private static Builder create() {
          return new Builder();
        }

        public Builder clear() {
          super.clear();
          attachmentOld_ = 0;
          bitField0_ = (bitField0_ & ~0x00000001);
          attachmentNew_ = 0;
          bitField0_ = (bitField0_ & ~0x00000002);
          entityHandle_ = 0;
          bitField0_ = (bitField0_ & ~0x00000004);
          return this;
        }

        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }

        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_ChangeControlPointAttachment_descriptor;
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ChangeControlPointAttachment getDefaultInstanceForType() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ChangeControlPointAttachment.getDefaultInstance();
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ChangeControlPointAttachment build() {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ChangeControlPointAttachment result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ChangeControlPointAttachment buildPartial() {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ChangeControlPointAttachment result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ChangeControlPointAttachment(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.attachmentOld_ = attachmentOld_;
          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
            to_bitField0_ |= 0x00000002;
          }
          result.attachmentNew_ = attachmentNew_;
          if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
            to_bitField0_ |= 0x00000004;
          }
          result.entityHandle_ = entityHandle_;
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }

        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ChangeControlPointAttachment) {
            return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ChangeControlPointAttachment)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ChangeControlPointAttachment other) {
          if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ChangeControlPointAttachment.getDefaultInstance()) return this;
          if (other.hasAttachmentOld()) {
            setAttachmentOld(other.getAttachmentOld());
          }
          if (other.hasAttachmentNew()) {
            setAttachmentNew(other.getAttachmentNew());
          }
          if (other.hasEntityHandle()) {
            setEntityHandle(other.getEntityHandle());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }

        public final boolean isInitialized() {
          return true;
        }

        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ChangeControlPointAttachment parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ChangeControlPointAttachment) e.getUnfinishedMessage();
            throw e;
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        private int attachmentOld_ ;
        /**
         * optional int32 attachment_old = 1;
         */
        public boolean hasAttachmentOld() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * optional int32 attachment_old = 1;
         */
        public int getAttachmentOld() {
          return attachmentOld_;
        }
        /**
         * optional int32 attachment_old = 1;
         */
        public Builder setAttachmentOld(int value) {
          bitField0_ |= 0x00000001;
          attachmentOld_ = value;
          onChanged();
          return this;
        }
        /**
         * optional int32 attachment_old = 1;
         */
        public Builder clearAttachmentOld() {
          bitField0_ = (bitField0_ & ~0x00000001);
          attachmentOld_ = 0;
          onChanged();
          return this;
        }

        private int attachmentNew_ ;
        /**
         * optional int32 attachment_new = 2;
         */
        public boolean hasAttachmentNew() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        /**
         * optional int32 attachment_new = 2;
         */
        public int getAttachmentNew() {
          return attachmentNew_;
        }
        /**
         * optional int32 attachment_new = 2;
         */
        public Builder setAttachmentNew(int value) {
          bitField0_ |= 0x00000002;
          attachmentNew_ = value;
          onChanged();
          return this;
        }
        /**
         * optional int32 attachment_new = 2;
         */
        public Builder clearAttachmentNew() {
          bitField0_ = (bitField0_ & ~0x00000002);
          attachmentNew_ = 0;
          onChanged();
          return this;
        }

        private int entityHandle_ ;
        /**
         * optional int32 entity_handle = 3;
         */
        public boolean hasEntityHandle() {
          return ((bitField0_ & 0x00000004) == 0x00000004);
        }
        /**
         * optional int32 entity_handle = 3;
         */
        public int getEntityHandle() {
          return entityHandle_;
        }
        /**
         * optional int32 entity_handle = 3;
         */
        public Builder setEntityHandle(int value) {
          bitField0_ |= 0x00000004;
          entityHandle_ = value;
          onChanged();
          return this;
        }
        /**
         * optional int32 entity_handle = 3;
         */
        public Builder clearEntityHandle() {
          bitField0_ = (bitField0_ & ~0x00000004);
          entityHandle_ = 0;
          onChanged();
          return this;
        }

        // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_ParticleManager.ChangeControlPointAttachment)
      }

      static {
        defaultInstance = new ChangeControlPointAttachment(true);
        defaultInstance.initFields();
      }

      // @@protoc_insertion_point(class_scope:CDOTAUserMsg_ParticleManager.ChangeControlPointAttachment)
    }

    public interface UpdateEntityPositionOrBuilder extends
        // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_ParticleManager.UpdateEntityPosition)
        com.google.protobuf.MessageOrBuilder {

      /**
       * optional int32 entity_handle = 1;
       */
      boolean hasEntityHandle();
      /**
       * optional int32 entity_handle = 1;
       */
      int getEntityHandle();

      /**
       * optional .CMsgVector position = 2;
       */
      boolean hasPosition();
      /**
       * optional .CMsgVector position = 2;
       */
      skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector getPosition();
      /**
       * optional .CMsgVector position = 2;
       */
      skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder getPositionOrBuilder();
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_ParticleManager.UpdateEntityPosition}
     */
    public static final class UpdateEntityPosition extends
        com.google.protobuf.GeneratedMessage implements
        // @@protoc_insertion_point(message_implements:CDOTAUserMsg_ParticleManager.UpdateEntityPosition)
        UpdateEntityPositionOrBuilder {
      // Use UpdateEntityPosition.newBuilder() to construct.
      private UpdateEntityPosition(com.google.protobuf.GeneratedMessage.Builder builder) {
        super(builder);
        this.unknownFields = builder.getUnknownFields();
      }
      private UpdateEntityPosition(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

      private static final UpdateEntityPosition defaultInstance;
      public static UpdateEntityPosition getDefaultInstance() {
        return defaultInstance;
      }

      public UpdateEntityPosition getDefaultInstanceForType() {
        return defaultInstance;
      }

      private final com.google.protobuf.UnknownFieldSet unknownFields;
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
          getUnknownFields() {
        return this.unknownFields;
      }
      private UpdateEntityPosition(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        initFields();
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
              case 8: {
                bitField0_ |= 0x00000001;
                entityHandle_ = input.readInt32();
                break;
              }
              case 18: {
                skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder subBuilder = null;
                if (((bitField0_ & 0x00000002) == 0x00000002)) {
                  subBuilder = position_.toBuilder();
                }
                position_ = input.readMessage(skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(position_);
                  position_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000002;
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e.getMessage()).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_UpdateEntityPosition_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_UpdateEntityPosition_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateEntityPosition.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateEntityPosition.Builder.class);
      }

      public static com.google.protobuf.Parser PARSER =
          new com.google.protobuf.AbstractParser() {
        public UpdateEntityPosition parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new UpdateEntityPosition(input, extensionRegistry);
        }
      };

      @java.lang.Override
      public com.google.protobuf.Parser getParserForType() {
        return PARSER;
      }

      private int bitField0_;
      public static final int ENTITY_HANDLE_FIELD_NUMBER = 1;
      private int entityHandle_;
      /**
       * optional int32 entity_handle = 1;
       */
      public boolean hasEntityHandle() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 entity_handle = 1;
       */
      public int getEntityHandle() {
        return entityHandle_;
      }

      public static final int POSITION_FIELD_NUMBER = 2;
      private skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector position_;
      /**
       * optional .CMsgVector position = 2;
       */
      public boolean hasPosition() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional .CMsgVector position = 2;
       */
      public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector getPosition() {
        return position_;
      }
      /**
       * optional .CMsgVector position = 2;
       */
      public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder getPositionOrBuilder() {
        return position_;
      }

      private void initFields() {
        entityHandle_ = 0;
        position_ = skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.getDefaultInstance();
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeInt32(1, entityHandle_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeMessage(2, position_);
        }
        getUnknownFields().writeTo(output);
      }

      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;

        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(1, entityHandle_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(2, position_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.Object writeReplace()
          throws java.io.ObjectStreamException {
        return super.writeReplace();
      }

      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateEntityPosition parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateEntityPosition parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateEntityPosition parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateEntityPosition parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateEntityPosition parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateEntityPosition parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateEntityPosition parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateEntityPosition parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateEntityPosition parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateEntityPosition parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }

      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateEntityPosition prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code CDOTAUserMsg_ParticleManager.UpdateEntityPosition}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder implements
          // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_ParticleManager.UpdateEntityPosition)
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateEntityPositionOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_UpdateEntityPosition_descriptor;
        }

        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_UpdateEntityPosition_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateEntityPosition.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateEntityPosition.Builder.class);
        }

        // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateEntityPosition.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
            getPositionFieldBuilder();
          }
        }
        private static Builder create() {
          return new Builder();
        }

        public Builder clear() {
          super.clear();
          entityHandle_ = 0;
          bitField0_ = (bitField0_ & ~0x00000001);
          if (positionBuilder_ == null) {
            position_ = skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.getDefaultInstance();
          } else {
            positionBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000002);
          return this;
        }

        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }

        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_UpdateEntityPosition_descriptor;
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateEntityPosition getDefaultInstanceForType() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateEntityPosition.getDefaultInstance();
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateEntityPosition build() {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateEntityPosition result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateEntityPosition buildPartial() {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateEntityPosition result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateEntityPosition(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.entityHandle_ = entityHandle_;
          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
            to_bitField0_ |= 0x00000002;
          }
          if (positionBuilder_ == null) {
            result.position_ = position_;
          } else {
            result.position_ = positionBuilder_.build();
          }
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }

        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateEntityPosition) {
            return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateEntityPosition)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateEntityPosition other) {
          if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateEntityPosition.getDefaultInstance()) return this;
          if (other.hasEntityHandle()) {
            setEntityHandle(other.getEntityHandle());
          }
          if (other.hasPosition()) {
            mergePosition(other.getPosition());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }

        public final boolean isInitialized() {
          return true;
        }

        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateEntityPosition parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateEntityPosition) e.getUnfinishedMessage();
            throw e;
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        private int entityHandle_ ;
        /**
         * optional int32 entity_handle = 1;
         */
        public boolean hasEntityHandle() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * optional int32 entity_handle = 1;
         */
        public int getEntityHandle() {
          return entityHandle_;
        }
        /**
         * optional int32 entity_handle = 1;
         */
        public Builder setEntityHandle(int value) {
          bitField0_ |= 0x00000001;
          entityHandle_ = value;
          onChanged();
          return this;
        }
        /**
         * optional int32 entity_handle = 1;
         */
        public Builder clearEntityHandle() {
          bitField0_ = (bitField0_ & ~0x00000001);
          entityHandle_ = 0;
          onChanged();
          return this;
        }

        private skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector position_ = skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.getDefaultInstance();
        private com.google.protobuf.SingleFieldBuilder<
            skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder> positionBuilder_;
        /**
         * optional .CMsgVector position = 2;
         */
        public boolean hasPosition() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        /**
         * optional .CMsgVector position = 2;
         */
        public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector getPosition() {
          if (positionBuilder_ == null) {
            return position_;
          } else {
            return positionBuilder_.getMessage();
          }
        }
        /**
         * optional .CMsgVector position = 2;
         */
        public Builder setPosition(skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector value) {
          if (positionBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            position_ = value;
            onChanged();
          } else {
            positionBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000002;
          return this;
        }
        /**
         * optional .CMsgVector position = 2;
         */
        public Builder setPosition(
            skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder builderForValue) {
          if (positionBuilder_ == null) {
            position_ = builderForValue.build();
            onChanged();
          } else {
            positionBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000002;
          return this;
        }
        /**
         * optional .CMsgVector position = 2;
         */
        public Builder mergePosition(skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector value) {
          if (positionBuilder_ == null) {
            if (((bitField0_ & 0x00000002) == 0x00000002) &&
                position_ != skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.getDefaultInstance()) {
              position_ =
                skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.newBuilder(position_).mergeFrom(value).buildPartial();
            } else {
              position_ = value;
            }
            onChanged();
          } else {
            positionBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00000002;
          return this;
        }
        /**
         * optional .CMsgVector position = 2;
         */
        public Builder clearPosition() {
          if (positionBuilder_ == null) {
            position_ = skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.getDefaultInstance();
            onChanged();
          } else {
            positionBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000002);
          return this;
        }
        /**
         * optional .CMsgVector position = 2;
         */
        public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder getPositionBuilder() {
          bitField0_ |= 0x00000002;
          onChanged();
          return getPositionFieldBuilder().getBuilder();
        }
        /**
         * optional .CMsgVector position = 2;
         */
        public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder getPositionOrBuilder() {
          if (positionBuilder_ != null) {
            return positionBuilder_.getMessageOrBuilder();
          } else {
            return position_;
          }
        }
        /**
         * optional .CMsgVector position = 2;
         */
        private com.google.protobuf.SingleFieldBuilder<
            skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder> 
            getPositionFieldBuilder() {
          if (positionBuilder_ == null) {
            positionBuilder_ = new com.google.protobuf.SingleFieldBuilder<
                skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder>(
                    getPosition(),
                    getParentForChildren(),
                    isClean());
            position_ = null;
          }
          return positionBuilder_;
        }

        // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_ParticleManager.UpdateEntityPosition)
      }

      static {
        defaultInstance = new UpdateEntityPosition(true);
        defaultInstance.initFields();
      }

      // @@protoc_insertion_point(class_scope:CDOTAUserMsg_ParticleManager.UpdateEntityPosition)
    }

    public interface SetParticleFoWPropertiesOrBuilder extends
        // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_ParticleManager.SetParticleFoWProperties)
        com.google.protobuf.MessageOrBuilder {

      /**
       * optional int32 fow_control_point = 1;
       */
      boolean hasFowControlPoint();
      /**
       * optional int32 fow_control_point = 1;
       */
      int getFowControlPoint();

      /**
       * optional int32 fow_control_point2 = 2;
       */
      boolean hasFowControlPoint2();
      /**
       * optional int32 fow_control_point2 = 2;
       */
      int getFowControlPoint2();

      /**
       * optional float fow_radius = 3;
       */
      boolean hasFowRadius();
      /**
       * optional float fow_radius = 3;
       */
      float getFowRadius();
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_ParticleManager.SetParticleFoWProperties}
     */
    public static final class SetParticleFoWProperties extends
        com.google.protobuf.GeneratedMessage implements
        // @@protoc_insertion_point(message_implements:CDOTAUserMsg_ParticleManager.SetParticleFoWProperties)
        SetParticleFoWPropertiesOrBuilder {
      // Use SetParticleFoWProperties.newBuilder() to construct.
      private SetParticleFoWProperties(com.google.protobuf.GeneratedMessage.Builder builder) {
        super(builder);
        this.unknownFields = builder.getUnknownFields();
      }
      private SetParticleFoWProperties(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

      private static final SetParticleFoWProperties defaultInstance;
      public static SetParticleFoWProperties getDefaultInstance() {
        return defaultInstance;
      }

      public SetParticleFoWProperties getDefaultInstanceForType() {
        return defaultInstance;
      }

      private final com.google.protobuf.UnknownFieldSet unknownFields;
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
          getUnknownFields() {
        return this.unknownFields;
      }
      private SetParticleFoWProperties(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        initFields();
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
              case 8: {
                bitField0_ |= 0x00000001;
                fowControlPoint_ = input.readInt32();
                break;
              }
              case 16: {
                bitField0_ |= 0x00000002;
                fowControlPoint2_ = input.readInt32();
                break;
              }
              case 29: {
                bitField0_ |= 0x00000004;
                fowRadius_ = input.readFloat();
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e.getMessage()).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_SetParticleFoWProperties_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_SetParticleFoWProperties_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleFoWProperties.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleFoWProperties.Builder.class);
      }

      public static com.google.protobuf.Parser PARSER =
          new com.google.protobuf.AbstractParser() {
        public SetParticleFoWProperties parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new SetParticleFoWProperties(input, extensionRegistry);
        }
      };

      @java.lang.Override
      public com.google.protobuf.Parser getParserForType() {
        return PARSER;
      }

      private int bitField0_;
      public static final int FOW_CONTROL_POINT_FIELD_NUMBER = 1;
      private int fowControlPoint_;
      /**
       * optional int32 fow_control_point = 1;
       */
      public boolean hasFowControlPoint() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 fow_control_point = 1;
       */
      public int getFowControlPoint() {
        return fowControlPoint_;
      }

      public static final int FOW_CONTROL_POINT2_FIELD_NUMBER = 2;
      private int fowControlPoint2_;
      /**
       * optional int32 fow_control_point2 = 2;
       */
      public boolean hasFowControlPoint2() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional int32 fow_control_point2 = 2;
       */
      public int getFowControlPoint2() {
        return fowControlPoint2_;
      }

      public static final int FOW_RADIUS_FIELD_NUMBER = 3;
      private float fowRadius_;
      /**
       * optional float fow_radius = 3;
       */
      public boolean hasFowRadius() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional float fow_radius = 3;
       */
      public float getFowRadius() {
        return fowRadius_;
      }

      private void initFields() {
        fowControlPoint_ = 0;
        fowControlPoint2_ = 0;
        fowRadius_ = 0F;
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeInt32(1, fowControlPoint_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeInt32(2, fowControlPoint2_);
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          output.writeFloat(3, fowRadius_);
        }
        getUnknownFields().writeTo(output);
      }

      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;

        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(1, fowControlPoint_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(2, fowControlPoint2_);
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          size += com.google.protobuf.CodedOutputStream
            .computeFloatSize(3, fowRadius_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.Object writeReplace()
          throws java.io.ObjectStreamException {
        return super.writeReplace();
      }

      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleFoWProperties parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleFoWProperties parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleFoWProperties parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleFoWProperties parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleFoWProperties parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleFoWProperties parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleFoWProperties parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleFoWProperties parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleFoWProperties parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleFoWProperties parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }

      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleFoWProperties prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code CDOTAUserMsg_ParticleManager.SetParticleFoWProperties}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder implements
          // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_ParticleManager.SetParticleFoWProperties)
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleFoWPropertiesOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_SetParticleFoWProperties_descriptor;
        }

        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_SetParticleFoWProperties_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleFoWProperties.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleFoWProperties.Builder.class);
        }

        // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleFoWProperties.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          }
        }
        private static Builder create() {
          return new Builder();
        }

        public Builder clear() {
          super.clear();
          fowControlPoint_ = 0;
          bitField0_ = (bitField0_ & ~0x00000001);
          fowControlPoint2_ = 0;
          bitField0_ = (bitField0_ & ~0x00000002);
          fowRadius_ = 0F;
          bitField0_ = (bitField0_ & ~0x00000004);
          return this;
        }

        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }

        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_SetParticleFoWProperties_descriptor;
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleFoWProperties getDefaultInstanceForType() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleFoWProperties.getDefaultInstance();
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleFoWProperties build() {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleFoWProperties result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleFoWProperties buildPartial() {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleFoWProperties result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleFoWProperties(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.fowControlPoint_ = fowControlPoint_;
          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
            to_bitField0_ |= 0x00000002;
          }
          result.fowControlPoint2_ = fowControlPoint2_;
          if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
            to_bitField0_ |= 0x00000004;
          }
          result.fowRadius_ = fowRadius_;
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }

        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleFoWProperties) {
            return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleFoWProperties)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleFoWProperties other) {
          if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleFoWProperties.getDefaultInstance()) return this;
          if (other.hasFowControlPoint()) {
            setFowControlPoint(other.getFowControlPoint());
          }
          if (other.hasFowControlPoint2()) {
            setFowControlPoint2(other.getFowControlPoint2());
          }
          if (other.hasFowRadius()) {
            setFowRadius(other.getFowRadius());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }

        public final boolean isInitialized() {
          return true;
        }

        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleFoWProperties parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleFoWProperties) e.getUnfinishedMessage();
            throw e;
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        private int fowControlPoint_ ;
        /**
         * optional int32 fow_control_point = 1;
         */
        public boolean hasFowControlPoint() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * optional int32 fow_control_point = 1;
         */
        public int getFowControlPoint() {
          return fowControlPoint_;
        }
        /**
         * optional int32 fow_control_point = 1;
         */
        public Builder setFowControlPoint(int value) {
          bitField0_ |= 0x00000001;
          fowControlPoint_ = value;
          onChanged();
          return this;
        }
        /**
         * optional int32 fow_control_point = 1;
         */
        public Builder clearFowControlPoint() {
          bitField0_ = (bitField0_ & ~0x00000001);
          fowControlPoint_ = 0;
          onChanged();
          return this;
        }

        private int fowControlPoint2_ ;
        /**
         * optional int32 fow_control_point2 = 2;
         */
        public boolean hasFowControlPoint2() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        /**
         * optional int32 fow_control_point2 = 2;
         */
        public int getFowControlPoint2() {
          return fowControlPoint2_;
        }
        /**
         * optional int32 fow_control_point2 = 2;
         */
        public Builder setFowControlPoint2(int value) {
          bitField0_ |= 0x00000002;
          fowControlPoint2_ = value;
          onChanged();
          return this;
        }
        /**
         * optional int32 fow_control_point2 = 2;
         */
        public Builder clearFowControlPoint2() {
          bitField0_ = (bitField0_ & ~0x00000002);
          fowControlPoint2_ = 0;
          onChanged();
          return this;
        }

        private float fowRadius_ ;
        /**
         * optional float fow_radius = 3;
         */
        public boolean hasFowRadius() {
          return ((bitField0_ & 0x00000004) == 0x00000004);
        }
        /**
         * optional float fow_radius = 3;
         */
        public float getFowRadius() {
          return fowRadius_;
        }
        /**
         * optional float fow_radius = 3;
         */
        public Builder setFowRadius(float value) {
          bitField0_ |= 0x00000004;
          fowRadius_ = value;
          onChanged();
          return this;
        }
        /**
         * optional float fow_radius = 3;
         */
        public Builder clearFowRadius() {
          bitField0_ = (bitField0_ & ~0x00000004);
          fowRadius_ = 0F;
          onChanged();
          return this;
        }

        // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_ParticleManager.SetParticleFoWProperties)
      }

      static {
        defaultInstance = new SetParticleFoWProperties(true);
        defaultInstance.initFields();
      }

      // @@protoc_insertion_point(class_scope:CDOTAUserMsg_ParticleManager.SetParticleFoWProperties)
    }

    public interface SetParticleShouldCheckFoWOrBuilder extends
        // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_ParticleManager.SetParticleShouldCheckFoW)
        com.google.protobuf.MessageOrBuilder {

      /**
       * optional bool check_fow = 1;
       */
      boolean hasCheckFow();
      /**
       * optional bool check_fow = 1;
       */
      boolean getCheckFow();
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_ParticleManager.SetParticleShouldCheckFoW}
     */
    public static final class SetParticleShouldCheckFoW extends
        com.google.protobuf.GeneratedMessage implements
        // @@protoc_insertion_point(message_implements:CDOTAUserMsg_ParticleManager.SetParticleShouldCheckFoW)
        SetParticleShouldCheckFoWOrBuilder {
      // Use SetParticleShouldCheckFoW.newBuilder() to construct.
      private SetParticleShouldCheckFoW(com.google.protobuf.GeneratedMessage.Builder builder) {
        super(builder);
        this.unknownFields = builder.getUnknownFields();
      }
      private SetParticleShouldCheckFoW(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

      private static final SetParticleShouldCheckFoW defaultInstance;
      public static SetParticleShouldCheckFoW getDefaultInstance() {
        return defaultInstance;
      }

      public SetParticleShouldCheckFoW getDefaultInstanceForType() {
        return defaultInstance;
      }

      private final com.google.protobuf.UnknownFieldSet unknownFields;
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
          getUnknownFields() {
        return this.unknownFields;
      }
      private SetParticleShouldCheckFoW(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        initFields();
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
              case 8: {
                bitField0_ |= 0x00000001;
                checkFow_ = input.readBool();
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e.getMessage()).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_SetParticleShouldCheckFoW_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_SetParticleShouldCheckFoW_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleShouldCheckFoW.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleShouldCheckFoW.Builder.class);
      }

      public static com.google.protobuf.Parser PARSER =
          new com.google.protobuf.AbstractParser() {
        public SetParticleShouldCheckFoW parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new SetParticleShouldCheckFoW(input, extensionRegistry);
        }
      };

      @java.lang.Override
      public com.google.protobuf.Parser getParserForType() {
        return PARSER;
      }

      private int bitField0_;
      public static final int CHECK_FOW_FIELD_NUMBER = 1;
      private boolean checkFow_;
      /**
       * optional bool check_fow = 1;
       */
      public boolean hasCheckFow() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional bool check_fow = 1;
       */
      public boolean getCheckFow() {
        return checkFow_;
      }

      private void initFields() {
        checkFow_ = false;
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeBool(1, checkFow_);
        }
        getUnknownFields().writeTo(output);
      }

      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;

        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeBoolSize(1, checkFow_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.Object writeReplace()
          throws java.io.ObjectStreamException {
        return super.writeReplace();
      }

      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleShouldCheckFoW parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleShouldCheckFoW parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleShouldCheckFoW parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleShouldCheckFoW parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleShouldCheckFoW parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleShouldCheckFoW parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleShouldCheckFoW parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleShouldCheckFoW parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleShouldCheckFoW parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleShouldCheckFoW parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }

      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleShouldCheckFoW prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code CDOTAUserMsg_ParticleManager.SetParticleShouldCheckFoW}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder implements
          // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_ParticleManager.SetParticleShouldCheckFoW)
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleShouldCheckFoWOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_SetParticleShouldCheckFoW_descriptor;
        }

        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_SetParticleShouldCheckFoW_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleShouldCheckFoW.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleShouldCheckFoW.Builder.class);
        }

        // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleShouldCheckFoW.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          }
        }
        private static Builder create() {
          return new Builder();
        }

        public Builder clear() {
          super.clear();
          checkFow_ = false;
          bitField0_ = (bitField0_ & ~0x00000001);
          return this;
        }

        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }

        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_SetParticleShouldCheckFoW_descriptor;
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleShouldCheckFoW getDefaultInstanceForType() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleShouldCheckFoW.getDefaultInstance();
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleShouldCheckFoW build() {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleShouldCheckFoW result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleShouldCheckFoW buildPartial() {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleShouldCheckFoW result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleShouldCheckFoW(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.checkFow_ = checkFow_;
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }

        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleShouldCheckFoW) {
            return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleShouldCheckFoW)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleShouldCheckFoW other) {
          if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleShouldCheckFoW.getDefaultInstance()) return this;
          if (other.hasCheckFow()) {
            setCheckFow(other.getCheckFow());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }

        public final boolean isInitialized() {
          return true;
        }

        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleShouldCheckFoW parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleShouldCheckFoW) e.getUnfinishedMessage();
            throw e;
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        private boolean checkFow_ ;
        /**
         * optional bool check_fow = 1;
         */
        public boolean hasCheckFow() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * optional bool check_fow = 1;
         */
        public boolean getCheckFow() {
          return checkFow_;
        }
        /**
         * optional bool check_fow = 1;
         */
        public Builder setCheckFow(boolean value) {
          bitField0_ |= 0x00000001;
          checkFow_ = value;
          onChanged();
          return this;
        }
        /**
         * optional bool check_fow = 1;
         */
        public Builder clearCheckFow() {
          bitField0_ = (bitField0_ & ~0x00000001);
          checkFow_ = false;
          onChanged();
          return this;
        }

        // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_ParticleManager.SetParticleShouldCheckFoW)
      }

      static {
        defaultInstance = new SetParticleShouldCheckFoW(true);
        defaultInstance.initFields();
      }

      // @@protoc_insertion_point(class_scope:CDOTAUserMsg_ParticleManager.SetParticleShouldCheckFoW)
    }

    public interface SetControlPointModelOrBuilder extends
        // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_ParticleManager.SetControlPointModel)
        com.google.protobuf.MessageOrBuilder {

      /**
       * optional int32 control_point = 1;
       */
      boolean hasControlPoint();
      /**
       * optional int32 control_point = 1;
       */
      int getControlPoint();

      /**
       * optional string model_name = 2;
       */
      boolean hasModelName();
      /**
       * optional string model_name = 2;
       */
      java.lang.String getModelName();
      /**
       * optional string model_name = 2;
       */
      com.google.protobuf.ByteString
          getModelNameBytes();
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_ParticleManager.SetControlPointModel}
     */
    public static final class SetControlPointModel extends
        com.google.protobuf.GeneratedMessage implements
        // @@protoc_insertion_point(message_implements:CDOTAUserMsg_ParticleManager.SetControlPointModel)
        SetControlPointModelOrBuilder {
      // Use SetControlPointModel.newBuilder() to construct.
      private SetControlPointModel(com.google.protobuf.GeneratedMessage.Builder builder) {
        super(builder);
        this.unknownFields = builder.getUnknownFields();
      }
      private SetControlPointModel(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

      private static final SetControlPointModel defaultInstance;
      public static SetControlPointModel getDefaultInstance() {
        return defaultInstance;
      }

      public SetControlPointModel getDefaultInstanceForType() {
        return defaultInstance;
      }

      private final com.google.protobuf.UnknownFieldSet unknownFields;
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
          getUnknownFields() {
        return this.unknownFields;
      }
      private SetControlPointModel(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        initFields();
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
              case 8: {
                bitField0_ |= 0x00000001;
                controlPoint_ = input.readInt32();
                break;
              }
              case 18: {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000002;
                modelName_ = bs;
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e.getMessage()).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_SetControlPointModel_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_SetControlPointModel_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointModel.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointModel.Builder.class);
      }

      public static com.google.protobuf.Parser PARSER =
          new com.google.protobuf.AbstractParser() {
        public SetControlPointModel parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new SetControlPointModel(input, extensionRegistry);
        }
      };

      @java.lang.Override
      public com.google.protobuf.Parser getParserForType() {
        return PARSER;
      }

      private int bitField0_;
      public static final int CONTROL_POINT_FIELD_NUMBER = 1;
      private int controlPoint_;
      /**
       * optional int32 control_point = 1;
       */
      public boolean hasControlPoint() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 control_point = 1;
       */
      public int getControlPoint() {
        return controlPoint_;
      }

      public static final int MODEL_NAME_FIELD_NUMBER = 2;
      private java.lang.Object modelName_;
      /**
       * optional string model_name = 2;
       */
      public boolean hasModelName() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional string model_name = 2;
       */
      public java.lang.String getModelName() {
        java.lang.Object ref = modelName_;
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          com.google.protobuf.ByteString bs = 
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            modelName_ = s;
          }
          return s;
        }
      }
      /**
       * optional string model_name = 2;
       */
      public com.google.protobuf.ByteString
          getModelNameBytes() {
        java.lang.Object ref = modelName_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          modelName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      private void initFields() {
        controlPoint_ = 0;
        modelName_ = "";
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeInt32(1, controlPoint_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeBytes(2, getModelNameBytes());
        }
        getUnknownFields().writeTo(output);
      }

      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;

        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(1, controlPoint_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeBytesSize(2, getModelNameBytes());
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.Object writeReplace()
          throws java.io.ObjectStreamException {
        return super.writeReplace();
      }

      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointModel parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointModel parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointModel parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointModel parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointModel parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointModel parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointModel parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointModel parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointModel parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointModel parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }

      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointModel prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code CDOTAUserMsg_ParticleManager.SetControlPointModel}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder implements
          // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_ParticleManager.SetControlPointModel)
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointModelOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_SetControlPointModel_descriptor;
        }

        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_SetControlPointModel_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointModel.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointModel.Builder.class);
        }

        // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointModel.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          }
        }
        private static Builder create() {
          return new Builder();
        }

        public Builder clear() {
          super.clear();
          controlPoint_ = 0;
          bitField0_ = (bitField0_ & ~0x00000001);
          modelName_ = "";
          bitField0_ = (bitField0_ & ~0x00000002);
          return this;
        }

        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }

        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_SetControlPointModel_descriptor;
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointModel getDefaultInstanceForType() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointModel.getDefaultInstance();
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointModel build() {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointModel result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointModel buildPartial() {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointModel result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointModel(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.controlPoint_ = controlPoint_;
          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
            to_bitField0_ |= 0x00000002;
          }
          result.modelName_ = modelName_;
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }

        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointModel) {
            return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointModel)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointModel other) {
          if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointModel.getDefaultInstance()) return this;
          if (other.hasControlPoint()) {
            setControlPoint(other.getControlPoint());
          }
          if (other.hasModelName()) {
            bitField0_ |= 0x00000002;
            modelName_ = other.modelName_;
            onChanged();
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }

        public final boolean isInitialized() {
          return true;
        }

        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointModel parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointModel) e.getUnfinishedMessage();
            throw e;
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        private int controlPoint_ ;
        /**
         * optional int32 control_point = 1;
         */
        public boolean hasControlPoint() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * optional int32 control_point = 1;
         */
        public int getControlPoint() {
          return controlPoint_;
        }
        /**
         * optional int32 control_point = 1;
         */
        public Builder setControlPoint(int value) {
          bitField0_ |= 0x00000001;
          controlPoint_ = value;
          onChanged();
          return this;
        }
        /**
         * optional int32 control_point = 1;
         */
        public Builder clearControlPoint() {
          bitField0_ = (bitField0_ & ~0x00000001);
          controlPoint_ = 0;
          onChanged();
          return this;
        }

        private java.lang.Object modelName_ = "";
        /**
         * optional string model_name = 2;
         */
        public boolean hasModelName() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        /**
         * optional string model_name = 2;
         */
        public java.lang.String getModelName() {
          java.lang.Object ref = modelName_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            if (bs.isValidUtf8()) {
              modelName_ = s;
            }
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * optional string model_name = 2;
         */
        public com.google.protobuf.ByteString
            getModelNameBytes() {
          java.lang.Object ref = modelName_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            modelName_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * optional string model_name = 2;
         */
        public Builder setModelName(
            java.lang.String value) {
          if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
          modelName_ = value;
          onChanged();
          return this;
        }
        /**
         * optional string model_name = 2;
         */
        public Builder clearModelName() {
          bitField0_ = (bitField0_ & ~0x00000002);
          modelName_ = getDefaultInstance().getModelName();
          onChanged();
          return this;
        }
        /**
         * optional string model_name = 2;
         */
        public Builder setModelNameBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
          modelName_ = value;
          onChanged();
          return this;
        }

        // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_ParticleManager.SetControlPointModel)
      }

      static {
        defaultInstance = new SetControlPointModel(true);
        defaultInstance.initFields();
      }

      // @@protoc_insertion_point(class_scope:CDOTAUserMsg_ParticleManager.SetControlPointModel)
    }

    public interface SetControlPointSnapshotOrBuilder extends
        // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_ParticleManager.SetControlPointSnapshot)
        com.google.protobuf.MessageOrBuilder {

      /**
       * optional int32 control_point = 1;
       */
      boolean hasControlPoint();
      /**
       * optional int32 control_point = 1;
       */
      int getControlPoint();

      /**
       * optional string snapshot_name = 2;
       */
      boolean hasSnapshotName();
      /**
       * optional string snapshot_name = 2;
       */
      java.lang.String getSnapshotName();
      /**
       * optional string snapshot_name = 2;
       */
      com.google.protobuf.ByteString
          getSnapshotNameBytes();
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_ParticleManager.SetControlPointSnapshot}
     */
    public static final class SetControlPointSnapshot extends
        com.google.protobuf.GeneratedMessage implements
        // @@protoc_insertion_point(message_implements:CDOTAUserMsg_ParticleManager.SetControlPointSnapshot)
        SetControlPointSnapshotOrBuilder {
      // Use SetControlPointSnapshot.newBuilder() to construct.
      private SetControlPointSnapshot(com.google.protobuf.GeneratedMessage.Builder builder) {
        super(builder);
        this.unknownFields = builder.getUnknownFields();
      }
      private SetControlPointSnapshot(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

      private static final SetControlPointSnapshot defaultInstance;
      public static SetControlPointSnapshot getDefaultInstance() {
        return defaultInstance;
      }

      public SetControlPointSnapshot getDefaultInstanceForType() {
        return defaultInstance;
      }

      private final com.google.protobuf.UnknownFieldSet unknownFields;
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
          getUnknownFields() {
        return this.unknownFields;
      }
      private SetControlPointSnapshot(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        initFields();
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
              case 8: {
                bitField0_ |= 0x00000001;
                controlPoint_ = input.readInt32();
                break;
              }
              case 18: {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000002;
                snapshotName_ = bs;
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e.getMessage()).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_SetControlPointSnapshot_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_SetControlPointSnapshot_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointSnapshot.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointSnapshot.Builder.class);
      }

      public static com.google.protobuf.Parser PARSER =
          new com.google.protobuf.AbstractParser() {
        public SetControlPointSnapshot parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new SetControlPointSnapshot(input, extensionRegistry);
        }
      };

      @java.lang.Override
      public com.google.protobuf.Parser getParserForType() {
        return PARSER;
      }

      private int bitField0_;
      public static final int CONTROL_POINT_FIELD_NUMBER = 1;
      private int controlPoint_;
      /**
       * optional int32 control_point = 1;
       */
      public boolean hasControlPoint() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 control_point = 1;
       */
      public int getControlPoint() {
        return controlPoint_;
      }

      public static final int SNAPSHOT_NAME_FIELD_NUMBER = 2;
      private java.lang.Object snapshotName_;
      /**
       * optional string snapshot_name = 2;
       */
      public boolean hasSnapshotName() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional string snapshot_name = 2;
       */
      public java.lang.String getSnapshotName() {
        java.lang.Object ref = snapshotName_;
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          com.google.protobuf.ByteString bs = 
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            snapshotName_ = s;
          }
          return s;
        }
      }
      /**
       * optional string snapshot_name = 2;
       */
      public com.google.protobuf.ByteString
          getSnapshotNameBytes() {
        java.lang.Object ref = snapshotName_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          snapshotName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      private void initFields() {
        controlPoint_ = 0;
        snapshotName_ = "";
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeInt32(1, controlPoint_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeBytes(2, getSnapshotNameBytes());
        }
        getUnknownFields().writeTo(output);
      }

      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;

        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(1, controlPoint_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeBytesSize(2, getSnapshotNameBytes());
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.Object writeReplace()
          throws java.io.ObjectStreamException {
        return super.writeReplace();
      }

      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointSnapshot parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointSnapshot parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointSnapshot parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointSnapshot parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointSnapshot parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointSnapshot parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointSnapshot parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointSnapshot parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointSnapshot parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointSnapshot parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }

      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointSnapshot prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code CDOTAUserMsg_ParticleManager.SetControlPointSnapshot}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder implements
          // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_ParticleManager.SetControlPointSnapshot)
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointSnapshotOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_SetControlPointSnapshot_descriptor;
        }

        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_SetControlPointSnapshot_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointSnapshot.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointSnapshot.Builder.class);
        }

        // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointSnapshot.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          }
        }
        private static Builder create() {
          return new Builder();
        }

        public Builder clear() {
          super.clear();
          controlPoint_ = 0;
          bitField0_ = (bitField0_ & ~0x00000001);
          snapshotName_ = "";
          bitField0_ = (bitField0_ & ~0x00000002);
          return this;
        }

        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }

        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_SetControlPointSnapshot_descriptor;
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointSnapshot getDefaultInstanceForType() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointSnapshot.getDefaultInstance();
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointSnapshot build() {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointSnapshot result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointSnapshot buildPartial() {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointSnapshot result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointSnapshot(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.controlPoint_ = controlPoint_;
          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
            to_bitField0_ |= 0x00000002;
          }
          result.snapshotName_ = snapshotName_;
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }

        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointSnapshot) {
            return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointSnapshot)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointSnapshot other) {
          if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointSnapshot.getDefaultInstance()) return this;
          if (other.hasControlPoint()) {
            setControlPoint(other.getControlPoint());
          }
          if (other.hasSnapshotName()) {
            bitField0_ |= 0x00000002;
            snapshotName_ = other.snapshotName_;
            onChanged();
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }

        public final boolean isInitialized() {
          return true;
        }

        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointSnapshot parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointSnapshot) e.getUnfinishedMessage();
            throw e;
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        private int controlPoint_ ;
        /**
         * optional int32 control_point = 1;
         */
        public boolean hasControlPoint() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * optional int32 control_point = 1;
         */
        public int getControlPoint() {
          return controlPoint_;
        }
        /**
         * optional int32 control_point = 1;
         */
        public Builder setControlPoint(int value) {
          bitField0_ |= 0x00000001;
          controlPoint_ = value;
          onChanged();
          return this;
        }
        /**
         * optional int32 control_point = 1;
         */
        public Builder clearControlPoint() {
          bitField0_ = (bitField0_ & ~0x00000001);
          controlPoint_ = 0;
          onChanged();
          return this;
        }

        private java.lang.Object snapshotName_ = "";
        /**
         * optional string snapshot_name = 2;
         */
        public boolean hasSnapshotName() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        /**
         * optional string snapshot_name = 2;
         */
        public java.lang.String getSnapshotName() {
          java.lang.Object ref = snapshotName_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            if (bs.isValidUtf8()) {
              snapshotName_ = s;
            }
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * optional string snapshot_name = 2;
         */
        public com.google.protobuf.ByteString
            getSnapshotNameBytes() {
          java.lang.Object ref = snapshotName_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            snapshotName_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * optional string snapshot_name = 2;
         */
        public Builder setSnapshotName(
            java.lang.String value) {
          if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
          snapshotName_ = value;
          onChanged();
          return this;
        }
        /**
         * optional string snapshot_name = 2;
         */
        public Builder clearSnapshotName() {
          bitField0_ = (bitField0_ & ~0x00000002);
          snapshotName_ = getDefaultInstance().getSnapshotName();
          onChanged();
          return this;
        }
        /**
         * optional string snapshot_name = 2;
         */
        public Builder setSnapshotNameBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
          snapshotName_ = value;
          onChanged();
          return this;
        }

        // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_ParticleManager.SetControlPointSnapshot)
      }

      static {
        defaultInstance = new SetControlPointSnapshot(true);
        defaultInstance.initFields();
      }

      // @@protoc_insertion_point(class_scope:CDOTAUserMsg_ParticleManager.SetControlPointSnapshot)
    }

    public interface SetParticleTextOrBuilder extends
        // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_ParticleManager.SetParticleText)
        com.google.protobuf.MessageOrBuilder {

      /**
       * optional string text = 1;
       */
      boolean hasText();
      /**
       * optional string text = 1;
       */
      java.lang.String getText();
      /**
       * optional string text = 1;
       */
      com.google.protobuf.ByteString
          getTextBytes();
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_ParticleManager.SetParticleText}
     */
    public static final class SetParticleText extends
        com.google.protobuf.GeneratedMessage implements
        // @@protoc_insertion_point(message_implements:CDOTAUserMsg_ParticleManager.SetParticleText)
        SetParticleTextOrBuilder {
      // Use SetParticleText.newBuilder() to construct.
      private SetParticleText(com.google.protobuf.GeneratedMessage.Builder builder) {
        super(builder);
        this.unknownFields = builder.getUnknownFields();
      }
      private SetParticleText(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

      private static final SetParticleText defaultInstance;
      public static SetParticleText getDefaultInstance() {
        return defaultInstance;
      }

      public SetParticleText getDefaultInstanceForType() {
        return defaultInstance;
      }

      private final com.google.protobuf.UnknownFieldSet unknownFields;
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
          getUnknownFields() {
        return this.unknownFields;
      }
      private SetParticleText(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        initFields();
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
              case 10: {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                text_ = bs;
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e.getMessage()).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_SetParticleText_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_SetParticleText_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleText.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleText.Builder.class);
      }

      public static com.google.protobuf.Parser PARSER =
          new com.google.protobuf.AbstractParser() {
        public SetParticleText parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new SetParticleText(input, extensionRegistry);
        }
      };

      @java.lang.Override
      public com.google.protobuf.Parser getParserForType() {
        return PARSER;
      }

      private int bitField0_;
      public static final int TEXT_FIELD_NUMBER = 1;
      private java.lang.Object text_;
      /**
       * optional string text = 1;
       */
      public boolean hasText() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional string text = 1;
       */
      public java.lang.String getText() {
        java.lang.Object ref = text_;
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          com.google.protobuf.ByteString bs = 
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            text_ = s;
          }
          return s;
        }
      }
      /**
       * optional string text = 1;
       */
      public com.google.protobuf.ByteString
          getTextBytes() {
        java.lang.Object ref = text_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          text_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      private void initFields() {
        text_ = "";
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeBytes(1, getTextBytes());
        }
        getUnknownFields().writeTo(output);
      }

      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;

        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeBytesSize(1, getTextBytes());
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.Object writeReplace()
          throws java.io.ObjectStreamException {
        return super.writeReplace();
      }

      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleText parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleText parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleText parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleText parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleText parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleText parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleText parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleText parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleText parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleText parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }

      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleText prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code CDOTAUserMsg_ParticleManager.SetParticleText}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder implements
          // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_ParticleManager.SetParticleText)
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleTextOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_SetParticleText_descriptor;
        }

        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_SetParticleText_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleText.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleText.Builder.class);
        }

        // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleText.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          }
        }
        private static Builder create() {
          return new Builder();
        }

        public Builder clear() {
          super.clear();
          text_ = "";
          bitField0_ = (bitField0_ & ~0x00000001);
          return this;
        }

        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }

        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_SetParticleText_descriptor;
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleText getDefaultInstanceForType() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleText.getDefaultInstance();
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleText build() {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleText result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleText buildPartial() {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleText result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleText(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.text_ = text_;
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }

        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleText) {
            return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleText)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleText other) {
          if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleText.getDefaultInstance()) return this;
          if (other.hasText()) {
            bitField0_ |= 0x00000001;
            text_ = other.text_;
            onChanged();
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }

        public final boolean isInitialized() {
          return true;
        }

        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleText parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleText) e.getUnfinishedMessage();
            throw e;
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        private java.lang.Object text_ = "";
        /**
         * optional string text = 1;
         */
        public boolean hasText() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * optional string text = 1;
         */
        public java.lang.String getText() {
          java.lang.Object ref = text_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            if (bs.isValidUtf8()) {
              text_ = s;
            }
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * optional string text = 1;
         */
        public com.google.protobuf.ByteString
            getTextBytes() {
          java.lang.Object ref = text_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            text_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * optional string text = 1;
         */
        public Builder setText(
            java.lang.String value) {
          if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
          text_ = value;
          onChanged();
          return this;
        }
        /**
         * optional string text = 1;
         */
        public Builder clearText() {
          bitField0_ = (bitField0_ & ~0x00000001);
          text_ = getDefaultInstance().getText();
          onChanged();
          return this;
        }
        /**
         * optional string text = 1;
         */
        public Builder setTextBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
          text_ = value;
          onChanged();
          return this;
        }

        // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_ParticleManager.SetParticleText)
      }

      static {
        defaultInstance = new SetParticleText(true);
        defaultInstance.initFields();
      }

      // @@protoc_insertion_point(class_scope:CDOTAUserMsg_ParticleManager.SetParticleText)
    }

    public interface SetTextureAttributeOrBuilder extends
        // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_ParticleManager.SetTextureAttribute)
        com.google.protobuf.MessageOrBuilder {

      /**
       * optional string attribute_name = 1;
       */
      boolean hasAttributeName();
      /**
       * optional string attribute_name = 1;
       */
      java.lang.String getAttributeName();
      /**
       * optional string attribute_name = 1;
       */
      com.google.protobuf.ByteString
          getAttributeNameBytes();

      /**
       * optional string texture_name = 2;
       */
      boolean hasTextureName();
      /**
       * optional string texture_name = 2;
       */
      java.lang.String getTextureName();
      /**
       * optional string texture_name = 2;
       */
      com.google.protobuf.ByteString
          getTextureNameBytes();
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_ParticleManager.SetTextureAttribute}
     */
    public static final class SetTextureAttribute extends
        com.google.protobuf.GeneratedMessage implements
        // @@protoc_insertion_point(message_implements:CDOTAUserMsg_ParticleManager.SetTextureAttribute)
        SetTextureAttributeOrBuilder {
      // Use SetTextureAttribute.newBuilder() to construct.
      private SetTextureAttribute(com.google.protobuf.GeneratedMessage.Builder builder) {
        super(builder);
        this.unknownFields = builder.getUnknownFields();
      }
      private SetTextureAttribute(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

      private static final SetTextureAttribute defaultInstance;
      public static SetTextureAttribute getDefaultInstance() {
        return defaultInstance;
      }

      public SetTextureAttribute getDefaultInstanceForType() {
        return defaultInstance;
      }

      private final com.google.protobuf.UnknownFieldSet unknownFields;
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
          getUnknownFields() {
        return this.unknownFields;
      }
      private SetTextureAttribute(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        initFields();
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
              case 10: {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                attributeName_ = bs;
                break;
              }
              case 18: {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000002;
                textureName_ = bs;
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e.getMessage()).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_SetTextureAttribute_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_SetTextureAttribute_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetTextureAttribute.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetTextureAttribute.Builder.class);
      }

      public static com.google.protobuf.Parser PARSER =
          new com.google.protobuf.AbstractParser() {
        public SetTextureAttribute parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new SetTextureAttribute(input, extensionRegistry);
        }
      };

      @java.lang.Override
      public com.google.protobuf.Parser getParserForType() {
        return PARSER;
      }

      private int bitField0_;
      public static final int ATTRIBUTE_NAME_FIELD_NUMBER = 1;
      private java.lang.Object attributeName_;
      /**
       * optional string attribute_name = 1;
       */
      public boolean hasAttributeName() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional string attribute_name = 1;
       */
      public java.lang.String getAttributeName() {
        java.lang.Object ref = attributeName_;
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          com.google.protobuf.ByteString bs = 
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            attributeName_ = s;
          }
          return s;
        }
      }
      /**
       * optional string attribute_name = 1;
       */
      public com.google.protobuf.ByteString
          getAttributeNameBytes() {
        java.lang.Object ref = attributeName_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          attributeName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      public static final int TEXTURE_NAME_FIELD_NUMBER = 2;
      private java.lang.Object textureName_;
      /**
       * optional string texture_name = 2;
       */
      public boolean hasTextureName() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional string texture_name = 2;
       */
      public java.lang.String getTextureName() {
        java.lang.Object ref = textureName_;
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          com.google.protobuf.ByteString bs = 
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            textureName_ = s;
          }
          return s;
        }
      }
      /**
       * optional string texture_name = 2;
       */
      public com.google.protobuf.ByteString
          getTextureNameBytes() {
        java.lang.Object ref = textureName_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          textureName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      private void initFields() {
        attributeName_ = "";
        textureName_ = "";
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeBytes(1, getAttributeNameBytes());
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeBytes(2, getTextureNameBytes());
        }
        getUnknownFields().writeTo(output);
      }

      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;

        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeBytesSize(1, getAttributeNameBytes());
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeBytesSize(2, getTextureNameBytes());
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.Object writeReplace()
          throws java.io.ObjectStreamException {
        return super.writeReplace();
      }

      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetTextureAttribute parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetTextureAttribute parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetTextureAttribute parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetTextureAttribute parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetTextureAttribute parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetTextureAttribute parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetTextureAttribute parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetTextureAttribute parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetTextureAttribute parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetTextureAttribute parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }

      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetTextureAttribute prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code CDOTAUserMsg_ParticleManager.SetTextureAttribute}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder implements
          // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_ParticleManager.SetTextureAttribute)
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetTextureAttributeOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_SetTextureAttribute_descriptor;
        }

        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_SetTextureAttribute_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetTextureAttribute.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetTextureAttribute.Builder.class);
        }

        // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetTextureAttribute.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          }
        }
        private static Builder create() {
          return new Builder();
        }

        public Builder clear() {
          super.clear();
          attributeName_ = "";
          bitField0_ = (bitField0_ & ~0x00000001);
          textureName_ = "";
          bitField0_ = (bitField0_ & ~0x00000002);
          return this;
        }

        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }

        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_SetTextureAttribute_descriptor;
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetTextureAttribute getDefaultInstanceForType() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetTextureAttribute.getDefaultInstance();
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetTextureAttribute build() {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetTextureAttribute result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetTextureAttribute buildPartial() {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetTextureAttribute result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetTextureAttribute(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.attributeName_ = attributeName_;
          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
            to_bitField0_ |= 0x00000002;
          }
          result.textureName_ = textureName_;
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }

        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetTextureAttribute) {
            return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetTextureAttribute)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetTextureAttribute other) {
          if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetTextureAttribute.getDefaultInstance()) return this;
          if (other.hasAttributeName()) {
            bitField0_ |= 0x00000001;
            attributeName_ = other.attributeName_;
            onChanged();
          }
          if (other.hasTextureName()) {
            bitField0_ |= 0x00000002;
            textureName_ = other.textureName_;
            onChanged();
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }

        public final boolean isInitialized() {
          return true;
        }

        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetTextureAttribute parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetTextureAttribute) e.getUnfinishedMessage();
            throw e;
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        private java.lang.Object attributeName_ = "";
        /**
         * optional string attribute_name = 1;
         */
        public boolean hasAttributeName() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * optional string attribute_name = 1;
         */
        public java.lang.String getAttributeName() {
          java.lang.Object ref = attributeName_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            if (bs.isValidUtf8()) {
              attributeName_ = s;
            }
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * optional string attribute_name = 1;
         */
        public com.google.protobuf.ByteString
            getAttributeNameBytes() {
          java.lang.Object ref = attributeName_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            attributeName_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * optional string attribute_name = 1;
         */
        public Builder setAttributeName(
            java.lang.String value) {
          if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
          attributeName_ = value;
          onChanged();
          return this;
        }
        /**
         * optional string attribute_name = 1;
         */
        public Builder clearAttributeName() {
          bitField0_ = (bitField0_ & ~0x00000001);
          attributeName_ = getDefaultInstance().getAttributeName();
          onChanged();
          return this;
        }
        /**
         * optional string attribute_name = 1;
         */
        public Builder setAttributeNameBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
          attributeName_ = value;
          onChanged();
          return this;
        }

        private java.lang.Object textureName_ = "";
        /**
         * optional string texture_name = 2;
         */
        public boolean hasTextureName() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        /**
         * optional string texture_name = 2;
         */
        public java.lang.String getTextureName() {
          java.lang.Object ref = textureName_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            if (bs.isValidUtf8()) {
              textureName_ = s;
            }
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * optional string texture_name = 2;
         */
        public com.google.protobuf.ByteString
            getTextureNameBytes() {
          java.lang.Object ref = textureName_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            textureName_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * optional string texture_name = 2;
         */
        public Builder setTextureName(
            java.lang.String value) {
          if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
          textureName_ = value;
          onChanged();
          return this;
        }
        /**
         * optional string texture_name = 2;
         */
        public Builder clearTextureName() {
          bitField0_ = (bitField0_ & ~0x00000002);
          textureName_ = getDefaultInstance().getTextureName();
          onChanged();
          return this;
        }
        /**
         * optional string texture_name = 2;
         */
        public Builder setTextureNameBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
          textureName_ = value;
          onChanged();
          return this;
        }

        // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_ParticleManager.SetTextureAttribute)
      }

      static {
        defaultInstance = new SetTextureAttribute(true);
        defaultInstance.initFields();
      }

      // @@protoc_insertion_point(class_scope:CDOTAUserMsg_ParticleManager.SetTextureAttribute)
    }

    public interface SetSceneObjectGenericFlagOrBuilder extends
        // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_ParticleManager.SetSceneObjectGenericFlag)
        com.google.protobuf.MessageOrBuilder {

      /**
       * optional bool flag_value = 1;
       */
      boolean hasFlagValue();
      /**
       * optional bool flag_value = 1;
       */
      boolean getFlagValue();
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_ParticleManager.SetSceneObjectGenericFlag}
     */
    public static final class SetSceneObjectGenericFlag extends
        com.google.protobuf.GeneratedMessage implements
        // @@protoc_insertion_point(message_implements:CDOTAUserMsg_ParticleManager.SetSceneObjectGenericFlag)
        SetSceneObjectGenericFlagOrBuilder {
      // Use SetSceneObjectGenericFlag.newBuilder() to construct.
      private SetSceneObjectGenericFlag(com.google.protobuf.GeneratedMessage.Builder builder) {
        super(builder);
        this.unknownFields = builder.getUnknownFields();
      }
      private SetSceneObjectGenericFlag(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

      private static final SetSceneObjectGenericFlag defaultInstance;
      public static SetSceneObjectGenericFlag getDefaultInstance() {
        return defaultInstance;
      }

      public SetSceneObjectGenericFlag getDefaultInstanceForType() {
        return defaultInstance;
      }

      private final com.google.protobuf.UnknownFieldSet unknownFields;
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
          getUnknownFields() {
        return this.unknownFields;
      }
      private SetSceneObjectGenericFlag(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        initFields();
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
              case 8: {
                bitField0_ |= 0x00000001;
                flagValue_ = input.readBool();
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e.getMessage()).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_SetSceneObjectGenericFlag_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_SetSceneObjectGenericFlag_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectGenericFlag.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectGenericFlag.Builder.class);
      }

      public static com.google.protobuf.Parser PARSER =
          new com.google.protobuf.AbstractParser() {
        public SetSceneObjectGenericFlag parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new SetSceneObjectGenericFlag(input, extensionRegistry);
        }
      };

      @java.lang.Override
      public com.google.protobuf.Parser getParserForType() {
        return PARSER;
      }

      private int bitField0_;
      public static final int FLAG_VALUE_FIELD_NUMBER = 1;
      private boolean flagValue_;
      /**
       * optional bool flag_value = 1;
       */
      public boolean hasFlagValue() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional bool flag_value = 1;
       */
      public boolean getFlagValue() {
        return flagValue_;
      }

      private void initFields() {
        flagValue_ = false;
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeBool(1, flagValue_);
        }
        getUnknownFields().writeTo(output);
      }

      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;

        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeBoolSize(1, flagValue_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.Object writeReplace()
          throws java.io.ObjectStreamException {
        return super.writeReplace();
      }

      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectGenericFlag parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectGenericFlag parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectGenericFlag parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectGenericFlag parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectGenericFlag parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectGenericFlag parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectGenericFlag parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectGenericFlag parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectGenericFlag parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectGenericFlag parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }

      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectGenericFlag prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code CDOTAUserMsg_ParticleManager.SetSceneObjectGenericFlag}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder implements
          // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_ParticleManager.SetSceneObjectGenericFlag)
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectGenericFlagOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_SetSceneObjectGenericFlag_descriptor;
        }

        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_SetSceneObjectGenericFlag_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectGenericFlag.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectGenericFlag.Builder.class);
        }

        // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectGenericFlag.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          }
        }
        private static Builder create() {
          return new Builder();
        }

        public Builder clear() {
          super.clear();
          flagValue_ = false;
          bitField0_ = (bitField0_ & ~0x00000001);
          return this;
        }

        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }

        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_SetSceneObjectGenericFlag_descriptor;
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectGenericFlag getDefaultInstanceForType() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectGenericFlag.getDefaultInstance();
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectGenericFlag build() {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectGenericFlag result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectGenericFlag buildPartial() {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectGenericFlag result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectGenericFlag(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.flagValue_ = flagValue_;
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }

        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectGenericFlag) {
            return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectGenericFlag)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectGenericFlag other) {
          if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectGenericFlag.getDefaultInstance()) return this;
          if (other.hasFlagValue()) {
            setFlagValue(other.getFlagValue());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }

        public final boolean isInitialized() {
          return true;
        }

        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectGenericFlag parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectGenericFlag) e.getUnfinishedMessage();
            throw e;
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        private boolean flagValue_ ;
        /**
         * optional bool flag_value = 1;
         */
        public boolean hasFlagValue() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * optional bool flag_value = 1;
         */
        public boolean getFlagValue() {
          return flagValue_;
        }
        /**
         * optional bool flag_value = 1;
         */
        public Builder setFlagValue(boolean value) {
          bitField0_ |= 0x00000001;
          flagValue_ = value;
          onChanged();
          return this;
        }
        /**
         * optional bool flag_value = 1;
         */
        public Builder clearFlagValue() {
          bitField0_ = (bitField0_ & ~0x00000001);
          flagValue_ = false;
          onChanged();
          return this;
        }

        // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_ParticleManager.SetSceneObjectGenericFlag)
      }

      static {
        defaultInstance = new SetSceneObjectGenericFlag(true);
        defaultInstance.initFields();
      }

      // @@protoc_insertion_point(class_scope:CDOTAUserMsg_ParticleManager.SetSceneObjectGenericFlag)
    }

    public interface SetSceneObjectTintAndDesatOrBuilder extends
        // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_ParticleManager.SetSceneObjectTintAndDesat)
        com.google.protobuf.MessageOrBuilder {

      /**
       * optional fixed32 tint = 1;
       */
      boolean hasTint();
      /**
       * optional fixed32 tint = 1;
       */
      int getTint();

      /**
       * optional float desat = 2;
       */
      boolean hasDesat();
      /**
       * optional float desat = 2;
       */
      float getDesat();
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_ParticleManager.SetSceneObjectTintAndDesat}
     */
    public static final class SetSceneObjectTintAndDesat extends
        com.google.protobuf.GeneratedMessage implements
        // @@protoc_insertion_point(message_implements:CDOTAUserMsg_ParticleManager.SetSceneObjectTintAndDesat)
        SetSceneObjectTintAndDesatOrBuilder {
      // Use SetSceneObjectTintAndDesat.newBuilder() to construct.
      private SetSceneObjectTintAndDesat(com.google.protobuf.GeneratedMessage.Builder builder) {
        super(builder);
        this.unknownFields = builder.getUnknownFields();
      }
      private SetSceneObjectTintAndDesat(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

      private static final SetSceneObjectTintAndDesat defaultInstance;
      public static SetSceneObjectTintAndDesat getDefaultInstance() {
        return defaultInstance;
      }

      public SetSceneObjectTintAndDesat getDefaultInstanceForType() {
        return defaultInstance;
      }

      private final com.google.protobuf.UnknownFieldSet unknownFields;
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
          getUnknownFields() {
        return this.unknownFields;
      }
      private SetSceneObjectTintAndDesat(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        initFields();
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
              case 13: {
                bitField0_ |= 0x00000001;
                tint_ = input.readFixed32();
                break;
              }
              case 21: {
                bitField0_ |= 0x00000002;
                desat_ = input.readFloat();
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e.getMessage()).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_SetSceneObjectTintAndDesat_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_SetSceneObjectTintAndDesat_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectTintAndDesat.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectTintAndDesat.Builder.class);
      }

      public static com.google.protobuf.Parser PARSER =
          new com.google.protobuf.AbstractParser() {
        public SetSceneObjectTintAndDesat parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new SetSceneObjectTintAndDesat(input, extensionRegistry);
        }
      };

      @java.lang.Override
      public com.google.protobuf.Parser getParserForType() {
        return PARSER;
      }

      private int bitField0_;
      public static final int TINT_FIELD_NUMBER = 1;
      private int tint_;
      /**
       * optional fixed32 tint = 1;
       */
      public boolean hasTint() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional fixed32 tint = 1;
       */
      public int getTint() {
        return tint_;
      }

      public static final int DESAT_FIELD_NUMBER = 2;
      private float desat_;
      /**
       * optional float desat = 2;
       */
      public boolean hasDesat() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional float desat = 2;
       */
      public float getDesat() {
        return desat_;
      }

      private void initFields() {
        tint_ = 0;
        desat_ = 0F;
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeFixed32(1, tint_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeFloat(2, desat_);
        }
        getUnknownFields().writeTo(output);
      }

      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;

        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeFixed32Size(1, tint_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeFloatSize(2, desat_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.Object writeReplace()
          throws java.io.ObjectStreamException {
        return super.writeReplace();
      }

      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectTintAndDesat parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectTintAndDesat parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectTintAndDesat parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectTintAndDesat parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectTintAndDesat parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectTintAndDesat parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectTintAndDesat parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectTintAndDesat parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectTintAndDesat parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectTintAndDesat parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }

      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectTintAndDesat prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code CDOTAUserMsg_ParticleManager.SetSceneObjectTintAndDesat}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder implements
          // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_ParticleManager.SetSceneObjectTintAndDesat)
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectTintAndDesatOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_SetSceneObjectTintAndDesat_descriptor;
        }

        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_SetSceneObjectTintAndDesat_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectTintAndDesat.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectTintAndDesat.Builder.class);
        }

        // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectTintAndDesat.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          }
        }
        private static Builder create() {
          return new Builder();
        }

        public Builder clear() {
          super.clear();
          tint_ = 0;
          bitField0_ = (bitField0_ & ~0x00000001);
          desat_ = 0F;
          bitField0_ = (bitField0_ & ~0x00000002);
          return this;
        }

        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }

        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_SetSceneObjectTintAndDesat_descriptor;
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectTintAndDesat getDefaultInstanceForType() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectTintAndDesat.getDefaultInstance();
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectTintAndDesat build() {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectTintAndDesat result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectTintAndDesat buildPartial() {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectTintAndDesat result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectTintAndDesat(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.tint_ = tint_;
          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
            to_bitField0_ |= 0x00000002;
          }
          result.desat_ = desat_;
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }

        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectTintAndDesat) {
            return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectTintAndDesat)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectTintAndDesat other) {
          if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectTintAndDesat.getDefaultInstance()) return this;
          if (other.hasTint()) {
            setTint(other.getTint());
          }
          if (other.hasDesat()) {
            setDesat(other.getDesat());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }

        public final boolean isInitialized() {
          return true;
        }

        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectTintAndDesat parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectTintAndDesat) e.getUnfinishedMessage();
            throw e;
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        private int tint_ ;
        /**
         * optional fixed32 tint = 1;
         */
        public boolean hasTint() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * optional fixed32 tint = 1;
         */
        public int getTint() {
          return tint_;
        }
        /**
         * optional fixed32 tint = 1;
         */
        public Builder setTint(int value) {
          bitField0_ |= 0x00000001;
          tint_ = value;
          onChanged();
          return this;
        }
        /**
         * optional fixed32 tint = 1;
         */
        public Builder clearTint() {
          bitField0_ = (bitField0_ & ~0x00000001);
          tint_ = 0;
          onChanged();
          return this;
        }

        private float desat_ ;
        /**
         * optional float desat = 2;
         */
        public boolean hasDesat() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        /**
         * optional float desat = 2;
         */
        public float getDesat() {
          return desat_;
        }
        /**
         * optional float desat = 2;
         */
        public Builder setDesat(float value) {
          bitField0_ |= 0x00000002;
          desat_ = value;
          onChanged();
          return this;
        }
        /**
         * optional float desat = 2;
         */
        public Builder clearDesat() {
          bitField0_ = (bitField0_ & ~0x00000002);
          desat_ = 0F;
          onChanged();
          return this;
        }

        // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_ParticleManager.SetSceneObjectTintAndDesat)
      }

      static {
        defaultInstance = new SetSceneObjectTintAndDesat(true);
        defaultInstance.initFields();
      }

      // @@protoc_insertion_point(class_scope:CDOTAUserMsg_ParticleManager.SetSceneObjectTintAndDesat)
    }

    private int bitField0_;
    public static final int TYPE_FIELD_NUMBER = 1;
    private skadistats.clarity.wire.common.proto.DotaUserMessages.DOTA_PARTICLE_MESSAGE type_;
    /**
     * required .DOTA_PARTICLE_MESSAGE type = 1 [default = DOTA_PARTICLE_MANAGER_EVENT_CREATE];
     */
    public boolean hasType() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * required .DOTA_PARTICLE_MESSAGE type = 1 [default = DOTA_PARTICLE_MANAGER_EVENT_CREATE];
     */
    public skadistats.clarity.wire.common.proto.DotaUserMessages.DOTA_PARTICLE_MESSAGE getType() {
      return type_;
    }

    public static final int INDEX_FIELD_NUMBER = 2;
    private int index_;
    /**
     * required uint32 index = 2;
     */
    public boolean hasIndex() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * required uint32 index = 2;
     */
    public int getIndex() {
      return index_;
    }

    public static final int RELEASE_PARTICLE_INDEX_FIELD_NUMBER = 3;
    private skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndex releaseParticleIndex_;
    /**
     * optional .CDOTAUserMsg_ParticleManager.ReleaseParticleIndex release_particle_index = 3;
     */
    public boolean hasReleaseParticleIndex() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional .CDOTAUserMsg_ParticleManager.ReleaseParticleIndex release_particle_index = 3;
     */
    public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndex getReleaseParticleIndex() {
      return releaseParticleIndex_;
    }
    /**
     * optional .CDOTAUserMsg_ParticleManager.ReleaseParticleIndex release_particle_index = 3;
     */
    public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndexOrBuilder getReleaseParticleIndexOrBuilder() {
      return releaseParticleIndex_;
    }

    public static final int CREATE_PARTICLE_FIELD_NUMBER = 4;
    private skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.CreateParticle createParticle_;
    /**
     * optional .CDOTAUserMsg_ParticleManager.CreateParticle create_particle = 4;
     */
    public boolean hasCreateParticle() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional .CDOTAUserMsg_ParticleManager.CreateParticle create_particle = 4;
     */
    public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.CreateParticle getCreateParticle() {
      return createParticle_;
    }
    /**
     * optional .CDOTAUserMsg_ParticleManager.CreateParticle create_particle = 4;
     */
    public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.CreateParticleOrBuilder getCreateParticleOrBuilder() {
      return createParticle_;
    }

    public static final int DESTROY_PARTICLE_FIELD_NUMBER = 5;
    private skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticle destroyParticle_;
    /**
     * optional .CDOTAUserMsg_ParticleManager.DestroyParticle destroy_particle = 5;
     */
    public boolean hasDestroyParticle() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * optional .CDOTAUserMsg_ParticleManager.DestroyParticle destroy_particle = 5;
     */
    public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticle getDestroyParticle() {
      return destroyParticle_;
    }
    /**
     * optional .CDOTAUserMsg_ParticleManager.DestroyParticle destroy_particle = 5;
     */
    public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticleOrBuilder getDestroyParticleOrBuilder() {
      return destroyParticle_;
    }

    public static final int DESTROY_PARTICLE_INVOLVING_FIELD_NUMBER = 6;
    private skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolving destroyParticleInvolving_;
    /**
     * optional .CDOTAUserMsg_ParticleManager.DestroyParticleInvolving destroy_particle_involving = 6;
     */
    public boolean hasDestroyParticleInvolving() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     * optional .CDOTAUserMsg_ParticleManager.DestroyParticleInvolving destroy_particle_involving = 6;
     */
    public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolving getDestroyParticleInvolving() {
      return destroyParticleInvolving_;
    }
    /**
     * optional .CDOTAUserMsg_ParticleManager.DestroyParticleInvolving destroy_particle_involving = 6;
     */
    public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolvingOrBuilder getDestroyParticleInvolvingOrBuilder() {
      return destroyParticleInvolving_;
    }

    public static final int UPDATE_PARTICLE_FIELD_NUMBER = 7;
    private skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticle updateParticle_;
    /**
     * optional .CDOTAUserMsg_ParticleManager.UpdateParticle update_particle = 7;
     */
    public boolean hasUpdateParticle() {
      return ((bitField0_ & 0x00000040) == 0x00000040);
    }
    /**
     * optional .CDOTAUserMsg_ParticleManager.UpdateParticle update_particle = 7;
     */
    public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticle getUpdateParticle() {
      return updateParticle_;
    }
    /**
     * optional .CDOTAUserMsg_ParticleManager.UpdateParticle update_particle = 7;
     */
    public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrBuilder getUpdateParticleOrBuilder() {
      return updateParticle_;
    }

    public static final int UPDATE_PARTICLE_FWD_FIELD_NUMBER = 8;
    private skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwd updateParticleFwd_;
    /**
     * optional .CDOTAUserMsg_ParticleManager.UpdateParticleFwd update_particle_fwd = 8;
     */
    public boolean hasUpdateParticleFwd() {
      return ((bitField0_ & 0x00000080) == 0x00000080);
    }
    /**
     * optional .CDOTAUserMsg_ParticleManager.UpdateParticleFwd update_particle_fwd = 8;
     */
    public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwd getUpdateParticleFwd() {
      return updateParticleFwd_;
    }
    /**
     * optional .CDOTAUserMsg_ParticleManager.UpdateParticleFwd update_particle_fwd = 8;
     */
    public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwdOrBuilder getUpdateParticleFwdOrBuilder() {
      return updateParticleFwd_;
    }

    public static final int UPDATE_PARTICLE_ORIENT_FIELD_NUMBER = 9;
    private skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrient updateParticleOrient_;
    /**
     * optional .CDOTAUserMsg_ParticleManager.UpdateParticleOrient update_particle_orient = 9;
     */
    public boolean hasUpdateParticleOrient() {
      return ((bitField0_ & 0x00000100) == 0x00000100);
    }
    /**
     * optional .CDOTAUserMsg_ParticleManager.UpdateParticleOrient update_particle_orient = 9;
     */
    public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrient getUpdateParticleOrient() {
      return updateParticleOrient_;
    }
    /**
     * optional .CDOTAUserMsg_ParticleManager.UpdateParticleOrient update_particle_orient = 9;
     */
    public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrientOrBuilder getUpdateParticleOrientOrBuilder() {
      return updateParticleOrient_;
    }

    public static final int UPDATE_PARTICLE_FALLBACK_FIELD_NUMBER = 10;
    private skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallback updateParticleFallback_;
    /**
     * optional .CDOTAUserMsg_ParticleManager.UpdateParticleFallback update_particle_fallback = 10;
     */
    public boolean hasUpdateParticleFallback() {
      return ((bitField0_ & 0x00000200) == 0x00000200);
    }
    /**
     * optional .CDOTAUserMsg_ParticleManager.UpdateParticleFallback update_particle_fallback = 10;
     */
    public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallback getUpdateParticleFallback() {
      return updateParticleFallback_;
    }
    /**
     * optional .CDOTAUserMsg_ParticleManager.UpdateParticleFallback update_particle_fallback = 10;
     */
    public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallbackOrBuilder getUpdateParticleFallbackOrBuilder() {
      return updateParticleFallback_;
    }

    public static final int UPDATE_PARTICLE_OFFSET_FIELD_NUMBER = 11;
    private skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffset updateParticleOffset_;
    /**
     * optional .CDOTAUserMsg_ParticleManager.UpdateParticleOffset update_particle_offset = 11;
     */
    public boolean hasUpdateParticleOffset() {
      return ((bitField0_ & 0x00000400) == 0x00000400);
    }
    /**
     * optional .CDOTAUserMsg_ParticleManager.UpdateParticleOffset update_particle_offset = 11;
     */
    public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffset getUpdateParticleOffset() {
      return updateParticleOffset_;
    }
    /**
     * optional .CDOTAUserMsg_ParticleManager.UpdateParticleOffset update_particle_offset = 11;
     */
    public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffsetOrBuilder getUpdateParticleOffsetOrBuilder() {
      return updateParticleOffset_;
    }

    public static final int UPDATE_PARTICLE_ENT_FIELD_NUMBER = 12;
    private skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleEnt updateParticleEnt_;
    /**
     * optional .CDOTAUserMsg_ParticleManager.UpdateParticleEnt update_particle_ent = 12;
     */
    public boolean hasUpdateParticleEnt() {
      return ((bitField0_ & 0x00000800) == 0x00000800);
    }
    /**
     * optional .CDOTAUserMsg_ParticleManager.UpdateParticleEnt update_particle_ent = 12;
     */
    public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleEnt getUpdateParticleEnt() {
      return updateParticleEnt_;
    }
    /**
     * optional .CDOTAUserMsg_ParticleManager.UpdateParticleEnt update_particle_ent = 12;
     */
    public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleEntOrBuilder getUpdateParticleEntOrBuilder() {
      return updateParticleEnt_;
    }

    public static final int UPDATE_PARTICLE_SHOULD_DRAW_FIELD_NUMBER = 14;
    private skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw updateParticleShouldDraw_;
    /**
     * optional .CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw update_particle_should_draw = 14;
     */
    public boolean hasUpdateParticleShouldDraw() {
      return ((bitField0_ & 0x00001000) == 0x00001000);
    }
    /**
     * optional .CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw update_particle_should_draw = 14;
     */
    public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw getUpdateParticleShouldDraw() {
      return updateParticleShouldDraw_;
    }
    /**
     * optional .CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw update_particle_should_draw = 14;
     */
    public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDrawOrBuilder getUpdateParticleShouldDrawOrBuilder() {
      return updateParticleShouldDraw_;
    }

    public static final int UPDATE_PARTICLE_SET_FROZEN_FIELD_NUMBER = 15;
    private skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen updateParticleSetFrozen_;
    /**
     * optional .CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen update_particle_set_frozen = 15;
     */
    public boolean hasUpdateParticleSetFrozen() {
      return ((bitField0_ & 0x00002000) == 0x00002000);
    }
    /**
     * optional .CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen update_particle_set_frozen = 15;
     */
    public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen getUpdateParticleSetFrozen() {
      return updateParticleSetFrozen_;
    }
    /**
     * optional .CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen update_particle_set_frozen = 15;
     */
    public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozenOrBuilder getUpdateParticleSetFrozenOrBuilder() {
      return updateParticleSetFrozen_;
    }

    public static final int CHANGE_CONTROL_POINT_ATTACHMENT_FIELD_NUMBER = 16;
    private skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ChangeControlPointAttachment changeControlPointAttachment_;
    /**
     * optional .CDOTAUserMsg_ParticleManager.ChangeControlPointAttachment change_control_point_attachment = 16;
     */
    public boolean hasChangeControlPointAttachment() {
      return ((bitField0_ & 0x00004000) == 0x00004000);
    }
    /**
     * optional .CDOTAUserMsg_ParticleManager.ChangeControlPointAttachment change_control_point_attachment = 16;
     */
    public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ChangeControlPointAttachment getChangeControlPointAttachment() {
      return changeControlPointAttachment_;
    }
    /**
     * optional .CDOTAUserMsg_ParticleManager.ChangeControlPointAttachment change_control_point_attachment = 16;
     */
    public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ChangeControlPointAttachmentOrBuilder getChangeControlPointAttachmentOrBuilder() {
      return changeControlPointAttachment_;
    }

    public static final int UPDATE_ENTITY_POSITION_FIELD_NUMBER = 17;
    private skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateEntityPosition updateEntityPosition_;
    /**
     * optional .CDOTAUserMsg_ParticleManager.UpdateEntityPosition update_entity_position = 17;
     */
    public boolean hasUpdateEntityPosition() {
      return ((bitField0_ & 0x00008000) == 0x00008000);
    }
    /**
     * optional .CDOTAUserMsg_ParticleManager.UpdateEntityPosition update_entity_position = 17;
     */
    public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateEntityPosition getUpdateEntityPosition() {
      return updateEntityPosition_;
    }
    /**
     * optional .CDOTAUserMsg_ParticleManager.UpdateEntityPosition update_entity_position = 17;
     */
    public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateEntityPositionOrBuilder getUpdateEntityPositionOrBuilder() {
      return updateEntityPosition_;
    }

    public static final int SET_PARTICLE_FOW_PROPERTIES_FIELD_NUMBER = 18;
    private skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleFoWProperties setParticleFowProperties_;
    /**
     * optional .CDOTAUserMsg_ParticleManager.SetParticleFoWProperties set_particle_fow_properties = 18;
     */
    public boolean hasSetParticleFowProperties() {
      return ((bitField0_ & 0x00010000) == 0x00010000);
    }
    /**
     * optional .CDOTAUserMsg_ParticleManager.SetParticleFoWProperties set_particle_fow_properties = 18;
     */
    public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleFoWProperties getSetParticleFowProperties() {
      return setParticleFowProperties_;
    }
    /**
     * optional .CDOTAUserMsg_ParticleManager.SetParticleFoWProperties set_particle_fow_properties = 18;
     */
    public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleFoWPropertiesOrBuilder getSetParticleFowPropertiesOrBuilder() {
      return setParticleFowProperties_;
    }

    public static final int SET_PARTICLE_TEXT_FIELD_NUMBER = 19;
    private skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleText setParticleText_;
    /**
     * optional .CDOTAUserMsg_ParticleManager.SetParticleText set_particle_text = 19;
     */
    public boolean hasSetParticleText() {
      return ((bitField0_ & 0x00020000) == 0x00020000);
    }
    /**
     * optional .CDOTAUserMsg_ParticleManager.SetParticleText set_particle_text = 19;
     */
    public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleText getSetParticleText() {
      return setParticleText_;
    }
    /**
     * optional .CDOTAUserMsg_ParticleManager.SetParticleText set_particle_text = 19;
     */
    public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleTextOrBuilder getSetParticleTextOrBuilder() {
      return setParticleText_;
    }

    public static final int SET_PARTICLE_SHOULD_CHECK_FOW_FIELD_NUMBER = 20;
    private skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleShouldCheckFoW setParticleShouldCheckFow_;
    /**
     * optional .CDOTAUserMsg_ParticleManager.SetParticleShouldCheckFoW set_particle_should_check_fow = 20;
     */
    public boolean hasSetParticleShouldCheckFow() {
      return ((bitField0_ & 0x00040000) == 0x00040000);
    }
    /**
     * optional .CDOTAUserMsg_ParticleManager.SetParticleShouldCheckFoW set_particle_should_check_fow = 20;
     */
    public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleShouldCheckFoW getSetParticleShouldCheckFow() {
      return setParticleShouldCheckFow_;
    }
    /**
     * optional .CDOTAUserMsg_ParticleManager.SetParticleShouldCheckFoW set_particle_should_check_fow = 20;
     */
    public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleShouldCheckFoWOrBuilder getSetParticleShouldCheckFowOrBuilder() {
      return setParticleShouldCheckFow_;
    }

    public static final int SET_CONTROL_POINT_MODEL_FIELD_NUMBER = 21;
    private skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointModel setControlPointModel_;
    /**
     * optional .CDOTAUserMsg_ParticleManager.SetControlPointModel set_control_point_model = 21;
     */
    public boolean hasSetControlPointModel() {
      return ((bitField0_ & 0x00080000) == 0x00080000);
    }
    /**
     * optional .CDOTAUserMsg_ParticleManager.SetControlPointModel set_control_point_model = 21;
     */
    public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointModel getSetControlPointModel() {
      return setControlPointModel_;
    }
    /**
     * optional .CDOTAUserMsg_ParticleManager.SetControlPointModel set_control_point_model = 21;
     */
    public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointModelOrBuilder getSetControlPointModelOrBuilder() {
      return setControlPointModel_;
    }

    public static final int SET_CONTROL_POINT_SNAPSHOT_FIELD_NUMBER = 22;
    private skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointSnapshot setControlPointSnapshot_;
    /**
     * optional .CDOTAUserMsg_ParticleManager.SetControlPointSnapshot set_control_point_snapshot = 22;
     */
    public boolean hasSetControlPointSnapshot() {
      return ((bitField0_ & 0x00100000) == 0x00100000);
    }
    /**
     * optional .CDOTAUserMsg_ParticleManager.SetControlPointSnapshot set_control_point_snapshot = 22;
     */
    public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointSnapshot getSetControlPointSnapshot() {
      return setControlPointSnapshot_;
    }
    /**
     * optional .CDOTAUserMsg_ParticleManager.SetControlPointSnapshot set_control_point_snapshot = 22;
     */
    public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointSnapshotOrBuilder getSetControlPointSnapshotOrBuilder() {
      return setControlPointSnapshot_;
    }

    public static final int SET_TEXTURE_ATTRIBUTE_FIELD_NUMBER = 23;
    private skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetTextureAttribute setTextureAttribute_;
    /**
     * optional .CDOTAUserMsg_ParticleManager.SetTextureAttribute set_texture_attribute = 23;
     */
    public boolean hasSetTextureAttribute() {
      return ((bitField0_ & 0x00200000) == 0x00200000);
    }
    /**
     * optional .CDOTAUserMsg_ParticleManager.SetTextureAttribute set_texture_attribute = 23;
     */
    public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetTextureAttribute getSetTextureAttribute() {
      return setTextureAttribute_;
    }
    /**
     * optional .CDOTAUserMsg_ParticleManager.SetTextureAttribute set_texture_attribute = 23;
     */
    public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetTextureAttributeOrBuilder getSetTextureAttributeOrBuilder() {
      return setTextureAttribute_;
    }

    public static final int SET_SCENE_OBJECT_GENERIC_FLAG_FIELD_NUMBER = 24;
    private skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectGenericFlag setSceneObjectGenericFlag_;
    /**
     * optional .CDOTAUserMsg_ParticleManager.SetSceneObjectGenericFlag set_scene_object_generic_flag = 24;
     */
    public boolean hasSetSceneObjectGenericFlag() {
      return ((bitField0_ & 0x00400000) == 0x00400000);
    }
    /**
     * optional .CDOTAUserMsg_ParticleManager.SetSceneObjectGenericFlag set_scene_object_generic_flag = 24;
     */
    public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectGenericFlag getSetSceneObjectGenericFlag() {
      return setSceneObjectGenericFlag_;
    }
    /**
     * optional .CDOTAUserMsg_ParticleManager.SetSceneObjectGenericFlag set_scene_object_generic_flag = 24;
     */
    public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectGenericFlagOrBuilder getSetSceneObjectGenericFlagOrBuilder() {
      return setSceneObjectGenericFlag_;
    }

    public static final int SET_SCENE_OBJECT_TINT_AND_DESAT_FIELD_NUMBER = 25;
    private skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectTintAndDesat setSceneObjectTintAndDesat_;
    /**
     * optional .CDOTAUserMsg_ParticleManager.SetSceneObjectTintAndDesat set_scene_object_tint_and_desat = 25;
     */
    public boolean hasSetSceneObjectTintAndDesat() {
      return ((bitField0_ & 0x00800000) == 0x00800000);
    }
    /**
     * optional .CDOTAUserMsg_ParticleManager.SetSceneObjectTintAndDesat set_scene_object_tint_and_desat = 25;
     */
    public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectTintAndDesat getSetSceneObjectTintAndDesat() {
      return setSceneObjectTintAndDesat_;
    }
    /**
     * optional .CDOTAUserMsg_ParticleManager.SetSceneObjectTintAndDesat set_scene_object_tint_and_desat = 25;
     */
    public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectTintAndDesatOrBuilder getSetSceneObjectTintAndDesatOrBuilder() {
      return setSceneObjectTintAndDesat_;
    }

    private void initFields() {
      type_ = skadistats.clarity.wire.common.proto.DotaUserMessages.DOTA_PARTICLE_MESSAGE.DOTA_PARTICLE_MANAGER_EVENT_CREATE;
      index_ = 0;
      releaseParticleIndex_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndex.getDefaultInstance();
      createParticle_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.CreateParticle.getDefaultInstance();
      destroyParticle_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticle.getDefaultInstance();
      destroyParticleInvolving_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolving.getDefaultInstance();
      updateParticle_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticle.getDefaultInstance();
      updateParticleFwd_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwd.getDefaultInstance();
      updateParticleOrient_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrient.getDefaultInstance();
      updateParticleFallback_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallback.getDefaultInstance();
      updateParticleOffset_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffset.getDefaultInstance();
      updateParticleEnt_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleEnt.getDefaultInstance();
      updateParticleShouldDraw_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw.getDefaultInstance();
      updateParticleSetFrozen_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen.getDefaultInstance();
      changeControlPointAttachment_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ChangeControlPointAttachment.getDefaultInstance();
      updateEntityPosition_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateEntityPosition.getDefaultInstance();
      setParticleFowProperties_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleFoWProperties.getDefaultInstance();
      setParticleText_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleText.getDefaultInstance();
      setParticleShouldCheckFow_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleShouldCheckFoW.getDefaultInstance();
      setControlPointModel_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointModel.getDefaultInstance();
      setControlPointSnapshot_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointSnapshot.getDefaultInstance();
      setTextureAttribute_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetTextureAttribute.getDefaultInstance();
      setSceneObjectGenericFlag_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectGenericFlag.getDefaultInstance();
      setSceneObjectTintAndDesat_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectTintAndDesat.getDefaultInstance();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasType()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasIndex()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeEnum(1, type_.getNumber());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, index_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeMessage(3, releaseParticleIndex_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeMessage(4, createParticle_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeMessage(5, destroyParticle_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeMessage(6, destroyParticleInvolving_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        output.writeMessage(7, updateParticle_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        output.writeMessage(8, updateParticleFwd_);
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        output.writeMessage(9, updateParticleOrient_);
      }
      if (((bitField0_ & 0x00000200) == 0x00000200)) {
        output.writeMessage(10, updateParticleFallback_);
      }
      if (((bitField0_ & 0x00000400) == 0x00000400)) {
        output.writeMessage(11, updateParticleOffset_);
      }
      if (((bitField0_ & 0x00000800) == 0x00000800)) {
        output.writeMessage(12, updateParticleEnt_);
      }
      if (((bitField0_ & 0x00001000) == 0x00001000)) {
        output.writeMessage(14, updateParticleShouldDraw_);
      }
      if (((bitField0_ & 0x00002000) == 0x00002000)) {
        output.writeMessage(15, updateParticleSetFrozen_);
      }
      if (((bitField0_ & 0x00004000) == 0x00004000)) {
        output.writeMessage(16, changeControlPointAttachment_);
      }
      if (((bitField0_ & 0x00008000) == 0x00008000)) {
        output.writeMessage(17, updateEntityPosition_);
      }
      if (((bitField0_ & 0x00010000) == 0x00010000)) {
        output.writeMessage(18, setParticleFowProperties_);
      }
      if (((bitField0_ & 0x00020000) == 0x00020000)) {
        output.writeMessage(19, setParticleText_);
      }
      if (((bitField0_ & 0x00040000) == 0x00040000)) {
        output.writeMessage(20, setParticleShouldCheckFow_);
      }
      if (((bitField0_ & 0x00080000) == 0x00080000)) {
        output.writeMessage(21, setControlPointModel_);
      }
      if (((bitField0_ & 0x00100000) == 0x00100000)) {
        output.writeMessage(22, setControlPointSnapshot_);
      }
      if (((bitField0_ & 0x00200000) == 0x00200000)) {
        output.writeMessage(23, setTextureAttribute_);
      }
      if (((bitField0_ & 0x00400000) == 0x00400000)) {
        output.writeMessage(24, setSceneObjectGenericFlag_);
      }
      if (((bitField0_ & 0x00800000) == 0x00800000)) {
        output.writeMessage(25, setSceneObjectTintAndDesat_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(1, type_.getNumber());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, index_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, releaseParticleIndex_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, createParticle_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(5, destroyParticle_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(6, destroyParticleInvolving_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(7, updateParticle_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(8, updateParticleFwd_);
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(9, updateParticleOrient_);
      }
      if (((bitField0_ & 0x00000200) == 0x00000200)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(10, updateParticleFallback_);
      }
      if (((bitField0_ & 0x00000400) == 0x00000400)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(11, updateParticleOffset_);
      }
      if (((bitField0_ & 0x00000800) == 0x00000800)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(12, updateParticleEnt_);
      }
      if (((bitField0_ & 0x00001000) == 0x00001000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(14, updateParticleShouldDraw_);
      }
      if (((bitField0_ & 0x00002000) == 0x00002000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(15, updateParticleSetFrozen_);
      }
      if (((bitField0_ & 0x00004000) == 0x00004000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(16, changeControlPointAttachment_);
      }
      if (((bitField0_ & 0x00008000) == 0x00008000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(17, updateEntityPosition_);
      }
      if (((bitField0_ & 0x00010000) == 0x00010000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(18, setParticleFowProperties_);
      }
      if (((bitField0_ & 0x00020000) == 0x00020000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(19, setParticleText_);
      }
      if (((bitField0_ & 0x00040000) == 0x00040000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(20, setParticleShouldCheckFow_);
      }
      if (((bitField0_ & 0x00080000) == 0x00080000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(21, setControlPointModel_);
      }
      if (((bitField0_ & 0x00100000) == 0x00100000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(22, setControlPointSnapshot_);
      }
      if (((bitField0_ & 0x00200000) == 0x00200000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(23, setTextureAttribute_);
      }
      if (((bitField0_ & 0x00400000) == 0x00400000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(24, setSceneObjectGenericFlag_);
      }
      if (((bitField0_ & 0x00800000) == 0x00800000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(25, setSceneObjectTintAndDesat_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_ParticleManager}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_ParticleManager)
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManagerOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getReleaseParticleIndexFieldBuilder();
          getCreateParticleFieldBuilder();
          getDestroyParticleFieldBuilder();
          getDestroyParticleInvolvingFieldBuilder();
          getUpdateParticleFieldBuilder();
          getUpdateParticleFwdFieldBuilder();
          getUpdateParticleOrientFieldBuilder();
          getUpdateParticleFallbackFieldBuilder();
          getUpdateParticleOffsetFieldBuilder();
          getUpdateParticleEntFieldBuilder();
          getUpdateParticleShouldDrawFieldBuilder();
          getUpdateParticleSetFrozenFieldBuilder();
          getChangeControlPointAttachmentFieldBuilder();
          getUpdateEntityPositionFieldBuilder();
          getSetParticleFowPropertiesFieldBuilder();
          getSetParticleTextFieldBuilder();
          getSetParticleShouldCheckFowFieldBuilder();
          getSetControlPointModelFieldBuilder();
          getSetControlPointSnapshotFieldBuilder();
          getSetTextureAttributeFieldBuilder();
          getSetSceneObjectGenericFlagFieldBuilder();
          getSetSceneObjectTintAndDesatFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        type_ = skadistats.clarity.wire.common.proto.DotaUserMessages.DOTA_PARTICLE_MESSAGE.DOTA_PARTICLE_MANAGER_EVENT_CREATE;
        bitField0_ = (bitField0_ & ~0x00000001);
        index_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        if (releaseParticleIndexBuilder_ == null) {
          releaseParticleIndex_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndex.getDefaultInstance();
        } else {
          releaseParticleIndexBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        if (createParticleBuilder_ == null) {
          createParticle_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.CreateParticle.getDefaultInstance();
        } else {
          createParticleBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000008);
        if (destroyParticleBuilder_ == null) {
          destroyParticle_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticle.getDefaultInstance();
        } else {
          destroyParticleBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000010);
        if (destroyParticleInvolvingBuilder_ == null) {
          destroyParticleInvolving_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolving.getDefaultInstance();
        } else {
          destroyParticleInvolvingBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000020);
        if (updateParticleBuilder_ == null) {
          updateParticle_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticle.getDefaultInstance();
        } else {
          updateParticleBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000040);
        if (updateParticleFwdBuilder_ == null) {
          updateParticleFwd_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwd.getDefaultInstance();
        } else {
          updateParticleFwdBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000080);
        if (updateParticleOrientBuilder_ == null) {
          updateParticleOrient_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrient.getDefaultInstance();
        } else {
          updateParticleOrientBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000100);
        if (updateParticleFallbackBuilder_ == null) {
          updateParticleFallback_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallback.getDefaultInstance();
        } else {
          updateParticleFallbackBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000200);
        if (updateParticleOffsetBuilder_ == null) {
          updateParticleOffset_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffset.getDefaultInstance();
        } else {
          updateParticleOffsetBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000400);
        if (updateParticleEntBuilder_ == null) {
          updateParticleEnt_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleEnt.getDefaultInstance();
        } else {
          updateParticleEntBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000800);
        if (updateParticleShouldDrawBuilder_ == null) {
          updateParticleShouldDraw_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw.getDefaultInstance();
        } else {
          updateParticleShouldDrawBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00001000);
        if (updateParticleSetFrozenBuilder_ == null) {
          updateParticleSetFrozen_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen.getDefaultInstance();
        } else {
          updateParticleSetFrozenBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00002000);
        if (changeControlPointAttachmentBuilder_ == null) {
          changeControlPointAttachment_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ChangeControlPointAttachment.getDefaultInstance();
        } else {
          changeControlPointAttachmentBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00004000);
        if (updateEntityPositionBuilder_ == null) {
          updateEntityPosition_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateEntityPosition.getDefaultInstance();
        } else {
          updateEntityPositionBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00008000);
        if (setParticleFowPropertiesBuilder_ == null) {
          setParticleFowProperties_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleFoWProperties.getDefaultInstance();
        } else {
          setParticleFowPropertiesBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00010000);
        if (setParticleTextBuilder_ == null) {
          setParticleText_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleText.getDefaultInstance();
        } else {
          setParticleTextBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00020000);
        if (setParticleShouldCheckFowBuilder_ == null) {
          setParticleShouldCheckFow_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleShouldCheckFoW.getDefaultInstance();
        } else {
          setParticleShouldCheckFowBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00040000);
        if (setControlPointModelBuilder_ == null) {
          setControlPointModel_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointModel.getDefaultInstance();
        } else {
          setControlPointModelBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00080000);
        if (setControlPointSnapshotBuilder_ == null) {
          setControlPointSnapshot_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointSnapshot.getDefaultInstance();
        } else {
          setControlPointSnapshotBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00100000);
        if (setTextureAttributeBuilder_ == null) {
          setTextureAttribute_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetTextureAttribute.getDefaultInstance();
        } else {
          setTextureAttributeBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00200000);
        if (setSceneObjectGenericFlagBuilder_ == null) {
          setSceneObjectGenericFlag_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectGenericFlag.getDefaultInstance();
        } else {
          setSceneObjectGenericFlagBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00400000);
        if (setSceneObjectTintAndDesatBuilder_ == null) {
          setSceneObjectTintAndDesat_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectTintAndDesat.getDefaultInstance();
        } else {
          setSceneObjectTintAndDesatBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00800000);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ParticleManager_descriptor;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager build() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager buildPartial() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.type_ = type_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.index_ = index_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        if (releaseParticleIndexBuilder_ == null) {
          result.releaseParticleIndex_ = releaseParticleIndex_;
        } else {
          result.releaseParticleIndex_ = releaseParticleIndexBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        if (createParticleBuilder_ == null) {
          result.createParticle_ = createParticle_;
        } else {
          result.createParticle_ = createParticleBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        if (destroyParticleBuilder_ == null) {
          result.destroyParticle_ = destroyParticle_;
        } else {
          result.destroyParticle_ = destroyParticleBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        if (destroyParticleInvolvingBuilder_ == null) {
          result.destroyParticleInvolving_ = destroyParticleInvolving_;
        } else {
          result.destroyParticleInvolving_ = destroyParticleInvolvingBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
          to_bitField0_ |= 0x00000040;
        }
        if (updateParticleBuilder_ == null) {
          result.updateParticle_ = updateParticle_;
        } else {
          result.updateParticle_ = updateParticleBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
          to_bitField0_ |= 0x00000080;
        }
        if (updateParticleFwdBuilder_ == null) {
          result.updateParticleFwd_ = updateParticleFwd_;
        } else {
          result.updateParticleFwd_ = updateParticleFwdBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000100) == 0x00000100)) {
          to_bitField0_ |= 0x00000100;
        }
        if (updateParticleOrientBuilder_ == null) {
          result.updateParticleOrient_ = updateParticleOrient_;
        } else {
          result.updateParticleOrient_ = updateParticleOrientBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000200) == 0x00000200)) {
          to_bitField0_ |= 0x00000200;
        }
        if (updateParticleFallbackBuilder_ == null) {
          result.updateParticleFallback_ = updateParticleFallback_;
        } else {
          result.updateParticleFallback_ = updateParticleFallbackBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000400) == 0x00000400)) {
          to_bitField0_ |= 0x00000400;
        }
        if (updateParticleOffsetBuilder_ == null) {
          result.updateParticleOffset_ = updateParticleOffset_;
        } else {
          result.updateParticleOffset_ = updateParticleOffsetBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000800) == 0x00000800)) {
          to_bitField0_ |= 0x00000800;
        }
        if (updateParticleEntBuilder_ == null) {
          result.updateParticleEnt_ = updateParticleEnt_;
        } else {
          result.updateParticleEnt_ = updateParticleEntBuilder_.build();
        }
        if (((from_bitField0_ & 0x00001000) == 0x00001000)) {
          to_bitField0_ |= 0x00001000;
        }
        if (updateParticleShouldDrawBuilder_ == null) {
          result.updateParticleShouldDraw_ = updateParticleShouldDraw_;
        } else {
          result.updateParticleShouldDraw_ = updateParticleShouldDrawBuilder_.build();
        }
        if (((from_bitField0_ & 0x00002000) == 0x00002000)) {
          to_bitField0_ |= 0x00002000;
        }
        if (updateParticleSetFrozenBuilder_ == null) {
          result.updateParticleSetFrozen_ = updateParticleSetFrozen_;
        } else {
          result.updateParticleSetFrozen_ = updateParticleSetFrozenBuilder_.build();
        }
        if (((from_bitField0_ & 0x00004000) == 0x00004000)) {
          to_bitField0_ |= 0x00004000;
        }
        if (changeControlPointAttachmentBuilder_ == null) {
          result.changeControlPointAttachment_ = changeControlPointAttachment_;
        } else {
          result.changeControlPointAttachment_ = changeControlPointAttachmentBuilder_.build();
        }
        if (((from_bitField0_ & 0x00008000) == 0x00008000)) {
          to_bitField0_ |= 0x00008000;
        }
        if (updateEntityPositionBuilder_ == null) {
          result.updateEntityPosition_ = updateEntityPosition_;
        } else {
          result.updateEntityPosition_ = updateEntityPositionBuilder_.build();
        }
        if (((from_bitField0_ & 0x00010000) == 0x00010000)) {
          to_bitField0_ |= 0x00010000;
        }
        if (setParticleFowPropertiesBuilder_ == null) {
          result.setParticleFowProperties_ = setParticleFowProperties_;
        } else {
          result.setParticleFowProperties_ = setParticleFowPropertiesBuilder_.build();
        }
        if (((from_bitField0_ & 0x00020000) == 0x00020000)) {
          to_bitField0_ |= 0x00020000;
        }
        if (setParticleTextBuilder_ == null) {
          result.setParticleText_ = setParticleText_;
        } else {
          result.setParticleText_ = setParticleTextBuilder_.build();
        }
        if (((from_bitField0_ & 0x00040000) == 0x00040000)) {
          to_bitField0_ |= 0x00040000;
        }
        if (setParticleShouldCheckFowBuilder_ == null) {
          result.setParticleShouldCheckFow_ = setParticleShouldCheckFow_;
        } else {
          result.setParticleShouldCheckFow_ = setParticleShouldCheckFowBuilder_.build();
        }
        if (((from_bitField0_ & 0x00080000) == 0x00080000)) {
          to_bitField0_ |= 0x00080000;
        }
        if (setControlPointModelBuilder_ == null) {
          result.setControlPointModel_ = setControlPointModel_;
        } else {
          result.setControlPointModel_ = setControlPointModelBuilder_.build();
        }
        if (((from_bitField0_ & 0x00100000) == 0x00100000)) {
          to_bitField0_ |= 0x00100000;
        }
        if (setControlPointSnapshotBuilder_ == null) {
          result.setControlPointSnapshot_ = setControlPointSnapshot_;
        } else {
          result.setControlPointSnapshot_ = setControlPointSnapshotBuilder_.build();
        }
        if (((from_bitField0_ & 0x00200000) == 0x00200000)) {
          to_bitField0_ |= 0x00200000;
        }
        if (setTextureAttributeBuilder_ == null) {
          result.setTextureAttribute_ = setTextureAttribute_;
        } else {
          result.setTextureAttribute_ = setTextureAttributeBuilder_.build();
        }
        if (((from_bitField0_ & 0x00400000) == 0x00400000)) {
          to_bitField0_ |= 0x00400000;
        }
        if (setSceneObjectGenericFlagBuilder_ == null) {
          result.setSceneObjectGenericFlag_ = setSceneObjectGenericFlag_;
        } else {
          result.setSceneObjectGenericFlag_ = setSceneObjectGenericFlagBuilder_.build();
        }
        if (((from_bitField0_ & 0x00800000) == 0x00800000)) {
          to_bitField0_ |= 0x00800000;
        }
        if (setSceneObjectTintAndDesatBuilder_ == null) {
          result.setSceneObjectTintAndDesat_ = setSceneObjectTintAndDesat_;
        } else {
          result.setSceneObjectTintAndDesat_ = setSceneObjectTintAndDesatBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager) {
          return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager other) {
        if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.getDefaultInstance()) return this;
        if (other.hasType()) {
          setType(other.getType());
        }
        if (other.hasIndex()) {
          setIndex(other.getIndex());
        }
        if (other.hasReleaseParticleIndex()) {
          mergeReleaseParticleIndex(other.getReleaseParticleIndex());
        }
        if (other.hasCreateParticle()) {
          mergeCreateParticle(other.getCreateParticle());
        }
        if (other.hasDestroyParticle()) {
          mergeDestroyParticle(other.getDestroyParticle());
        }
        if (other.hasDestroyParticleInvolving()) {
          mergeDestroyParticleInvolving(other.getDestroyParticleInvolving());
        }
        if (other.hasUpdateParticle()) {
          mergeUpdateParticle(other.getUpdateParticle());
        }
        if (other.hasUpdateParticleFwd()) {
          mergeUpdateParticleFwd(other.getUpdateParticleFwd());
        }
        if (other.hasUpdateParticleOrient()) {
          mergeUpdateParticleOrient(other.getUpdateParticleOrient());
        }
        if (other.hasUpdateParticleFallback()) {
          mergeUpdateParticleFallback(other.getUpdateParticleFallback());
        }
        if (other.hasUpdateParticleOffset()) {
          mergeUpdateParticleOffset(other.getUpdateParticleOffset());
        }
        if (other.hasUpdateParticleEnt()) {
          mergeUpdateParticleEnt(other.getUpdateParticleEnt());
        }
        if (other.hasUpdateParticleShouldDraw()) {
          mergeUpdateParticleShouldDraw(other.getUpdateParticleShouldDraw());
        }
        if (other.hasUpdateParticleSetFrozen()) {
          mergeUpdateParticleSetFrozen(other.getUpdateParticleSetFrozen());
        }
        if (other.hasChangeControlPointAttachment()) {
          mergeChangeControlPointAttachment(other.getChangeControlPointAttachment());
        }
        if (other.hasUpdateEntityPosition()) {
          mergeUpdateEntityPosition(other.getUpdateEntityPosition());
        }
        if (other.hasSetParticleFowProperties()) {
          mergeSetParticleFowProperties(other.getSetParticleFowProperties());
        }
        if (other.hasSetParticleText()) {
          mergeSetParticleText(other.getSetParticleText());
        }
        if (other.hasSetParticleShouldCheckFow()) {
          mergeSetParticleShouldCheckFow(other.getSetParticleShouldCheckFow());
        }
        if (other.hasSetControlPointModel()) {
          mergeSetControlPointModel(other.getSetControlPointModel());
        }
        if (other.hasSetControlPointSnapshot()) {
          mergeSetControlPointSnapshot(other.getSetControlPointSnapshot());
        }
        if (other.hasSetTextureAttribute()) {
          mergeSetTextureAttribute(other.getSetTextureAttribute());
        }
        if (other.hasSetSceneObjectGenericFlag()) {
          mergeSetSceneObjectGenericFlag(other.getSetSceneObjectGenericFlag());
        }
        if (other.hasSetSceneObjectTintAndDesat()) {
          mergeSetSceneObjectTintAndDesat(other.getSetSceneObjectTintAndDesat());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasType()) {
          
          return false;
        }
        if (!hasIndex()) {
          
          return false;
        }
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private skadistats.clarity.wire.common.proto.DotaUserMessages.DOTA_PARTICLE_MESSAGE type_ = skadistats.clarity.wire.common.proto.DotaUserMessages.DOTA_PARTICLE_MESSAGE.DOTA_PARTICLE_MANAGER_EVENT_CREATE;
      /**
       * required .DOTA_PARTICLE_MESSAGE type = 1 [default = DOTA_PARTICLE_MANAGER_EVENT_CREATE];
       */
      public boolean hasType() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * required .DOTA_PARTICLE_MESSAGE type = 1 [default = DOTA_PARTICLE_MANAGER_EVENT_CREATE];
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.DOTA_PARTICLE_MESSAGE getType() {
        return type_;
      }
      /**
       * required .DOTA_PARTICLE_MESSAGE type = 1 [default = DOTA_PARTICLE_MANAGER_EVENT_CREATE];
       */
      public Builder setType(skadistats.clarity.wire.common.proto.DotaUserMessages.DOTA_PARTICLE_MESSAGE value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        type_ = value;
        onChanged();
        return this;
      }
      /**
       * required .DOTA_PARTICLE_MESSAGE type = 1 [default = DOTA_PARTICLE_MANAGER_EVENT_CREATE];
       */
      public Builder clearType() {
        bitField0_ = (bitField0_ & ~0x00000001);
        type_ = skadistats.clarity.wire.common.proto.DotaUserMessages.DOTA_PARTICLE_MESSAGE.DOTA_PARTICLE_MANAGER_EVENT_CREATE;
        onChanged();
        return this;
      }

      private int index_ ;
      /**
       * required uint32 index = 2;
       */
      public boolean hasIndex() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * required uint32 index = 2;
       */
      public int getIndex() {
        return index_;
      }
      /**
       * required uint32 index = 2;
       */
      public Builder setIndex(int value) {
        bitField0_ |= 0x00000002;
        index_ = value;
        onChanged();
        return this;
      }
      /**
       * required uint32 index = 2;
       */
      public Builder clearIndex() {
        bitField0_ = (bitField0_ & ~0x00000002);
        index_ = 0;
        onChanged();
        return this;
      }

      private skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndex releaseParticleIndex_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndex.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndex, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndex.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndexOrBuilder> releaseParticleIndexBuilder_;
      /**
       * optional .CDOTAUserMsg_ParticleManager.ReleaseParticleIndex release_particle_index = 3;
       */
      public boolean hasReleaseParticleIndex() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.ReleaseParticleIndex release_particle_index = 3;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndex getReleaseParticleIndex() {
        if (releaseParticleIndexBuilder_ == null) {
          return releaseParticleIndex_;
        } else {
          return releaseParticleIndexBuilder_.getMessage();
        }
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.ReleaseParticleIndex release_particle_index = 3;
       */
      public Builder setReleaseParticleIndex(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndex value) {
        if (releaseParticleIndexBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          releaseParticleIndex_ = value;
          onChanged();
        } else {
          releaseParticleIndexBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.ReleaseParticleIndex release_particle_index = 3;
       */
      public Builder setReleaseParticleIndex(
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndex.Builder builderForValue) {
        if (releaseParticleIndexBuilder_ == null) {
          releaseParticleIndex_ = builderForValue.build();
          onChanged();
        } else {
          releaseParticleIndexBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.ReleaseParticleIndex release_particle_index = 3;
       */
      public Builder mergeReleaseParticleIndex(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndex value) {
        if (releaseParticleIndexBuilder_ == null) {
          if (((bitField0_ & 0x00000004) == 0x00000004) &&
              releaseParticleIndex_ != skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndex.getDefaultInstance()) {
            releaseParticleIndex_ =
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndex.newBuilder(releaseParticleIndex_).mergeFrom(value).buildPartial();
          } else {
            releaseParticleIndex_ = value;
          }
          onChanged();
        } else {
          releaseParticleIndexBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.ReleaseParticleIndex release_particle_index = 3;
       */
      public Builder clearReleaseParticleIndex() {
        if (releaseParticleIndexBuilder_ == null) {
          releaseParticleIndex_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndex.getDefaultInstance();
          onChanged();
        } else {
          releaseParticleIndexBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.ReleaseParticleIndex release_particle_index = 3;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndex.Builder getReleaseParticleIndexBuilder() {
        bitField0_ |= 0x00000004;
        onChanged();
        return getReleaseParticleIndexFieldBuilder().getBuilder();
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.ReleaseParticleIndex release_particle_index = 3;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndexOrBuilder getReleaseParticleIndexOrBuilder() {
        if (releaseParticleIndexBuilder_ != null) {
          return releaseParticleIndexBuilder_.getMessageOrBuilder();
        } else {
          return releaseParticleIndex_;
        }
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.ReleaseParticleIndex release_particle_index = 3;
       */
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndex, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndex.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndexOrBuilder> 
          getReleaseParticleIndexFieldBuilder() {
        if (releaseParticleIndexBuilder_ == null) {
          releaseParticleIndexBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndex, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndex.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndexOrBuilder>(
                  getReleaseParticleIndex(),
                  getParentForChildren(),
                  isClean());
          releaseParticleIndex_ = null;
        }
        return releaseParticleIndexBuilder_;
      }

      private skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.CreateParticle createParticle_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.CreateParticle.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.CreateParticle, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.CreateParticle.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.CreateParticleOrBuilder> createParticleBuilder_;
      /**
       * optional .CDOTAUserMsg_ParticleManager.CreateParticle create_particle = 4;
       */
      public boolean hasCreateParticle() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.CreateParticle create_particle = 4;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.CreateParticle getCreateParticle() {
        if (createParticleBuilder_ == null) {
          return createParticle_;
        } else {
          return createParticleBuilder_.getMessage();
        }
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.CreateParticle create_particle = 4;
       */
      public Builder setCreateParticle(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.CreateParticle value) {
        if (createParticleBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          createParticle_ = value;
          onChanged();
        } else {
          createParticleBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.CreateParticle create_particle = 4;
       */
      public Builder setCreateParticle(
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.CreateParticle.Builder builderForValue) {
        if (createParticleBuilder_ == null) {
          createParticle_ = builderForValue.build();
          onChanged();
        } else {
          createParticleBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.CreateParticle create_particle = 4;
       */
      public Builder mergeCreateParticle(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.CreateParticle value) {
        if (createParticleBuilder_ == null) {
          if (((bitField0_ & 0x00000008) == 0x00000008) &&
              createParticle_ != skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.CreateParticle.getDefaultInstance()) {
            createParticle_ =
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.CreateParticle.newBuilder(createParticle_).mergeFrom(value).buildPartial();
          } else {
            createParticle_ = value;
          }
          onChanged();
        } else {
          createParticleBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.CreateParticle create_particle = 4;
       */
      public Builder clearCreateParticle() {
        if (createParticleBuilder_ == null) {
          createParticle_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.CreateParticle.getDefaultInstance();
          onChanged();
        } else {
          createParticleBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.CreateParticle create_particle = 4;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.CreateParticle.Builder getCreateParticleBuilder() {
        bitField0_ |= 0x00000008;
        onChanged();
        return getCreateParticleFieldBuilder().getBuilder();
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.CreateParticle create_particle = 4;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.CreateParticleOrBuilder getCreateParticleOrBuilder() {
        if (createParticleBuilder_ != null) {
          return createParticleBuilder_.getMessageOrBuilder();
        } else {
          return createParticle_;
        }
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.CreateParticle create_particle = 4;
       */
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.CreateParticle, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.CreateParticle.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.CreateParticleOrBuilder> 
          getCreateParticleFieldBuilder() {
        if (createParticleBuilder_ == null) {
          createParticleBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.CreateParticle, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.CreateParticle.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.CreateParticleOrBuilder>(
                  getCreateParticle(),
                  getParentForChildren(),
                  isClean());
          createParticle_ = null;
        }
        return createParticleBuilder_;
      }

      private skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticle destroyParticle_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticle.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticle, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticle.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticleOrBuilder> destroyParticleBuilder_;
      /**
       * optional .CDOTAUserMsg_ParticleManager.DestroyParticle destroy_particle = 5;
       */
      public boolean hasDestroyParticle() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.DestroyParticle destroy_particle = 5;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticle getDestroyParticle() {
        if (destroyParticleBuilder_ == null) {
          return destroyParticle_;
        } else {
          return destroyParticleBuilder_.getMessage();
        }
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.DestroyParticle destroy_particle = 5;
       */
      public Builder setDestroyParticle(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticle value) {
        if (destroyParticleBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          destroyParticle_ = value;
          onChanged();
        } else {
          destroyParticleBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.DestroyParticle destroy_particle = 5;
       */
      public Builder setDestroyParticle(
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticle.Builder builderForValue) {
        if (destroyParticleBuilder_ == null) {
          destroyParticle_ = builderForValue.build();
          onChanged();
        } else {
          destroyParticleBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.DestroyParticle destroy_particle = 5;
       */
      public Builder mergeDestroyParticle(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticle value) {
        if (destroyParticleBuilder_ == null) {
          if (((bitField0_ & 0x00000010) == 0x00000010) &&
              destroyParticle_ != skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticle.getDefaultInstance()) {
            destroyParticle_ =
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticle.newBuilder(destroyParticle_).mergeFrom(value).buildPartial();
          } else {
            destroyParticle_ = value;
          }
          onChanged();
        } else {
          destroyParticleBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.DestroyParticle destroy_particle = 5;
       */
      public Builder clearDestroyParticle() {
        if (destroyParticleBuilder_ == null) {
          destroyParticle_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticle.getDefaultInstance();
          onChanged();
        } else {
          destroyParticleBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.DestroyParticle destroy_particle = 5;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticle.Builder getDestroyParticleBuilder() {
        bitField0_ |= 0x00000010;
        onChanged();
        return getDestroyParticleFieldBuilder().getBuilder();
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.DestroyParticle destroy_particle = 5;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticleOrBuilder getDestroyParticleOrBuilder() {
        if (destroyParticleBuilder_ != null) {
          return destroyParticleBuilder_.getMessageOrBuilder();
        } else {
          return destroyParticle_;
        }
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.DestroyParticle destroy_particle = 5;
       */
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticle, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticle.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticleOrBuilder> 
          getDestroyParticleFieldBuilder() {
        if (destroyParticleBuilder_ == null) {
          destroyParticleBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticle, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticle.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticleOrBuilder>(
                  getDestroyParticle(),
                  getParentForChildren(),
                  isClean());
          destroyParticle_ = null;
        }
        return destroyParticleBuilder_;
      }

      private skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolving destroyParticleInvolving_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolving.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolving, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolving.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolvingOrBuilder> destroyParticleInvolvingBuilder_;
      /**
       * optional .CDOTAUserMsg_ParticleManager.DestroyParticleInvolving destroy_particle_involving = 6;
       */
      public boolean hasDestroyParticleInvolving() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.DestroyParticleInvolving destroy_particle_involving = 6;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolving getDestroyParticleInvolving() {
        if (destroyParticleInvolvingBuilder_ == null) {
          return destroyParticleInvolving_;
        } else {
          return destroyParticleInvolvingBuilder_.getMessage();
        }
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.DestroyParticleInvolving destroy_particle_involving = 6;
       */
      public Builder setDestroyParticleInvolving(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolving value) {
        if (destroyParticleInvolvingBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          destroyParticleInvolving_ = value;
          onChanged();
        } else {
          destroyParticleInvolvingBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000020;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.DestroyParticleInvolving destroy_particle_involving = 6;
       */
      public Builder setDestroyParticleInvolving(
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolving.Builder builderForValue) {
        if (destroyParticleInvolvingBuilder_ == null) {
          destroyParticleInvolving_ = builderForValue.build();
          onChanged();
        } else {
          destroyParticleInvolvingBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000020;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.DestroyParticleInvolving destroy_particle_involving = 6;
       */
      public Builder mergeDestroyParticleInvolving(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolving value) {
        if (destroyParticleInvolvingBuilder_ == null) {
          if (((bitField0_ & 0x00000020) == 0x00000020) &&
              destroyParticleInvolving_ != skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolving.getDefaultInstance()) {
            destroyParticleInvolving_ =
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolving.newBuilder(destroyParticleInvolving_).mergeFrom(value).buildPartial();
          } else {
            destroyParticleInvolving_ = value;
          }
          onChanged();
        } else {
          destroyParticleInvolvingBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000020;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.DestroyParticleInvolving destroy_particle_involving = 6;
       */
      public Builder clearDestroyParticleInvolving() {
        if (destroyParticleInvolvingBuilder_ == null) {
          destroyParticleInvolving_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolving.getDefaultInstance();
          onChanged();
        } else {
          destroyParticleInvolvingBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000020);
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.DestroyParticleInvolving destroy_particle_involving = 6;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolving.Builder getDestroyParticleInvolvingBuilder() {
        bitField0_ |= 0x00000020;
        onChanged();
        return getDestroyParticleInvolvingFieldBuilder().getBuilder();
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.DestroyParticleInvolving destroy_particle_involving = 6;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolvingOrBuilder getDestroyParticleInvolvingOrBuilder() {
        if (destroyParticleInvolvingBuilder_ != null) {
          return destroyParticleInvolvingBuilder_.getMessageOrBuilder();
        } else {
          return destroyParticleInvolving_;
        }
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.DestroyParticleInvolving destroy_particle_involving = 6;
       */
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolving, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolving.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolvingOrBuilder> 
          getDestroyParticleInvolvingFieldBuilder() {
        if (destroyParticleInvolvingBuilder_ == null) {
          destroyParticleInvolvingBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolving, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolving.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolvingOrBuilder>(
                  getDestroyParticleInvolving(),
                  getParentForChildren(),
                  isClean());
          destroyParticleInvolving_ = null;
        }
        return destroyParticleInvolvingBuilder_;
      }

      private skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticle updateParticle_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticle.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticle, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticle.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrBuilder> updateParticleBuilder_;
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticle update_particle = 7;
       */
      public boolean hasUpdateParticle() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticle update_particle = 7;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticle getUpdateParticle() {
        if (updateParticleBuilder_ == null) {
          return updateParticle_;
        } else {
          return updateParticleBuilder_.getMessage();
        }
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticle update_particle = 7;
       */
      public Builder setUpdateParticle(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticle value) {
        if (updateParticleBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          updateParticle_ = value;
          onChanged();
        } else {
          updateParticleBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000040;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticle update_particle = 7;
       */
      public Builder setUpdateParticle(
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticle.Builder builderForValue) {
        if (updateParticleBuilder_ == null) {
          updateParticle_ = builderForValue.build();
          onChanged();
        } else {
          updateParticleBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000040;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticle update_particle = 7;
       */
      public Builder mergeUpdateParticle(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticle value) {
        if (updateParticleBuilder_ == null) {
          if (((bitField0_ & 0x00000040) == 0x00000040) &&
              updateParticle_ != skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticle.getDefaultInstance()) {
            updateParticle_ =
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticle.newBuilder(updateParticle_).mergeFrom(value).buildPartial();
          } else {
            updateParticle_ = value;
          }
          onChanged();
        } else {
          updateParticleBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000040;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticle update_particle = 7;
       */
      public Builder clearUpdateParticle() {
        if (updateParticleBuilder_ == null) {
          updateParticle_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticle.getDefaultInstance();
          onChanged();
        } else {
          updateParticleBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000040);
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticle update_particle = 7;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticle.Builder getUpdateParticleBuilder() {
        bitField0_ |= 0x00000040;
        onChanged();
        return getUpdateParticleFieldBuilder().getBuilder();
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticle update_particle = 7;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrBuilder getUpdateParticleOrBuilder() {
        if (updateParticleBuilder_ != null) {
          return updateParticleBuilder_.getMessageOrBuilder();
        } else {
          return updateParticle_;
        }
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticle update_particle = 7;
       */
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticle, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticle.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrBuilder> 
          getUpdateParticleFieldBuilder() {
        if (updateParticleBuilder_ == null) {
          updateParticleBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticle, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticle.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrBuilder>(
                  getUpdateParticle(),
                  getParentForChildren(),
                  isClean());
          updateParticle_ = null;
        }
        return updateParticleBuilder_;
      }

      private skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwd updateParticleFwd_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwd.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwd, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwd.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwdOrBuilder> updateParticleFwdBuilder_;
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleFwd update_particle_fwd = 8;
       */
      public boolean hasUpdateParticleFwd() {
        return ((bitField0_ & 0x00000080) == 0x00000080);
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleFwd update_particle_fwd = 8;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwd getUpdateParticleFwd() {
        if (updateParticleFwdBuilder_ == null) {
          return updateParticleFwd_;
        } else {
          return updateParticleFwdBuilder_.getMessage();
        }
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleFwd update_particle_fwd = 8;
       */
      public Builder setUpdateParticleFwd(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwd value) {
        if (updateParticleFwdBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          updateParticleFwd_ = value;
          onChanged();
        } else {
          updateParticleFwdBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000080;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleFwd update_particle_fwd = 8;
       */
      public Builder setUpdateParticleFwd(
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwd.Builder builderForValue) {
        if (updateParticleFwdBuilder_ == null) {
          updateParticleFwd_ = builderForValue.build();
          onChanged();
        } else {
          updateParticleFwdBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000080;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleFwd update_particle_fwd = 8;
       */
      public Builder mergeUpdateParticleFwd(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwd value) {
        if (updateParticleFwdBuilder_ == null) {
          if (((bitField0_ & 0x00000080) == 0x00000080) &&
              updateParticleFwd_ != skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwd.getDefaultInstance()) {
            updateParticleFwd_ =
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwd.newBuilder(updateParticleFwd_).mergeFrom(value).buildPartial();
          } else {
            updateParticleFwd_ = value;
          }
          onChanged();
        } else {
          updateParticleFwdBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000080;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleFwd update_particle_fwd = 8;
       */
      public Builder clearUpdateParticleFwd() {
        if (updateParticleFwdBuilder_ == null) {
          updateParticleFwd_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwd.getDefaultInstance();
          onChanged();
        } else {
          updateParticleFwdBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000080);
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleFwd update_particle_fwd = 8;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwd.Builder getUpdateParticleFwdBuilder() {
        bitField0_ |= 0x00000080;
        onChanged();
        return getUpdateParticleFwdFieldBuilder().getBuilder();
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleFwd update_particle_fwd = 8;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwdOrBuilder getUpdateParticleFwdOrBuilder() {
        if (updateParticleFwdBuilder_ != null) {
          return updateParticleFwdBuilder_.getMessageOrBuilder();
        } else {
          return updateParticleFwd_;
        }
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleFwd update_particle_fwd = 8;
       */
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwd, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwd.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwdOrBuilder> 
          getUpdateParticleFwdFieldBuilder() {
        if (updateParticleFwdBuilder_ == null) {
          updateParticleFwdBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwd, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwd.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwdOrBuilder>(
                  getUpdateParticleFwd(),
                  getParentForChildren(),
                  isClean());
          updateParticleFwd_ = null;
        }
        return updateParticleFwdBuilder_;
      }

      private skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrient updateParticleOrient_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrient.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrient, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrient.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrientOrBuilder> updateParticleOrientBuilder_;
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleOrient update_particle_orient = 9;
       */
      public boolean hasUpdateParticleOrient() {
        return ((bitField0_ & 0x00000100) == 0x00000100);
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleOrient update_particle_orient = 9;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrient getUpdateParticleOrient() {
        if (updateParticleOrientBuilder_ == null) {
          return updateParticleOrient_;
        } else {
          return updateParticleOrientBuilder_.getMessage();
        }
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleOrient update_particle_orient = 9;
       */
      public Builder setUpdateParticleOrient(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrient value) {
        if (updateParticleOrientBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          updateParticleOrient_ = value;
          onChanged();
        } else {
          updateParticleOrientBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000100;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleOrient update_particle_orient = 9;
       */
      public Builder setUpdateParticleOrient(
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrient.Builder builderForValue) {
        if (updateParticleOrientBuilder_ == null) {
          updateParticleOrient_ = builderForValue.build();
          onChanged();
        } else {
          updateParticleOrientBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000100;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleOrient update_particle_orient = 9;
       */
      public Builder mergeUpdateParticleOrient(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrient value) {
        if (updateParticleOrientBuilder_ == null) {
          if (((bitField0_ & 0x00000100) == 0x00000100) &&
              updateParticleOrient_ != skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrient.getDefaultInstance()) {
            updateParticleOrient_ =
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrient.newBuilder(updateParticleOrient_).mergeFrom(value).buildPartial();
          } else {
            updateParticleOrient_ = value;
          }
          onChanged();
        } else {
          updateParticleOrientBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000100;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleOrient update_particle_orient = 9;
       */
      public Builder clearUpdateParticleOrient() {
        if (updateParticleOrientBuilder_ == null) {
          updateParticleOrient_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrient.getDefaultInstance();
          onChanged();
        } else {
          updateParticleOrientBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000100);
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleOrient update_particle_orient = 9;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrient.Builder getUpdateParticleOrientBuilder() {
        bitField0_ |= 0x00000100;
        onChanged();
        return getUpdateParticleOrientFieldBuilder().getBuilder();
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleOrient update_particle_orient = 9;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrientOrBuilder getUpdateParticleOrientOrBuilder() {
        if (updateParticleOrientBuilder_ != null) {
          return updateParticleOrientBuilder_.getMessageOrBuilder();
        } else {
          return updateParticleOrient_;
        }
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleOrient update_particle_orient = 9;
       */
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrient, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrient.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrientOrBuilder> 
          getUpdateParticleOrientFieldBuilder() {
        if (updateParticleOrientBuilder_ == null) {
          updateParticleOrientBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrient, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrient.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrientOrBuilder>(
                  getUpdateParticleOrient(),
                  getParentForChildren(),
                  isClean());
          updateParticleOrient_ = null;
        }
        return updateParticleOrientBuilder_;
      }

      private skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallback updateParticleFallback_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallback.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallback, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallback.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallbackOrBuilder> updateParticleFallbackBuilder_;
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleFallback update_particle_fallback = 10;
       */
      public boolean hasUpdateParticleFallback() {
        return ((bitField0_ & 0x00000200) == 0x00000200);
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleFallback update_particle_fallback = 10;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallback getUpdateParticleFallback() {
        if (updateParticleFallbackBuilder_ == null) {
          return updateParticleFallback_;
        } else {
          return updateParticleFallbackBuilder_.getMessage();
        }
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleFallback update_particle_fallback = 10;
       */
      public Builder setUpdateParticleFallback(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallback value) {
        if (updateParticleFallbackBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          updateParticleFallback_ = value;
          onChanged();
        } else {
          updateParticleFallbackBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000200;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleFallback update_particle_fallback = 10;
       */
      public Builder setUpdateParticleFallback(
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallback.Builder builderForValue) {
        if (updateParticleFallbackBuilder_ == null) {
          updateParticleFallback_ = builderForValue.build();
          onChanged();
        } else {
          updateParticleFallbackBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000200;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleFallback update_particle_fallback = 10;
       */
      public Builder mergeUpdateParticleFallback(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallback value) {
        if (updateParticleFallbackBuilder_ == null) {
          if (((bitField0_ & 0x00000200) == 0x00000200) &&
              updateParticleFallback_ != skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallback.getDefaultInstance()) {
            updateParticleFallback_ =
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallback.newBuilder(updateParticleFallback_).mergeFrom(value).buildPartial();
          } else {
            updateParticleFallback_ = value;
          }
          onChanged();
        } else {
          updateParticleFallbackBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000200;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleFallback update_particle_fallback = 10;
       */
      public Builder clearUpdateParticleFallback() {
        if (updateParticleFallbackBuilder_ == null) {
          updateParticleFallback_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallback.getDefaultInstance();
          onChanged();
        } else {
          updateParticleFallbackBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000200);
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleFallback update_particle_fallback = 10;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallback.Builder getUpdateParticleFallbackBuilder() {
        bitField0_ |= 0x00000200;
        onChanged();
        return getUpdateParticleFallbackFieldBuilder().getBuilder();
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleFallback update_particle_fallback = 10;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallbackOrBuilder getUpdateParticleFallbackOrBuilder() {
        if (updateParticleFallbackBuilder_ != null) {
          return updateParticleFallbackBuilder_.getMessageOrBuilder();
        } else {
          return updateParticleFallback_;
        }
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleFallback update_particle_fallback = 10;
       */
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallback, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallback.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallbackOrBuilder> 
          getUpdateParticleFallbackFieldBuilder() {
        if (updateParticleFallbackBuilder_ == null) {
          updateParticleFallbackBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallback, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallback.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallbackOrBuilder>(
                  getUpdateParticleFallback(),
                  getParentForChildren(),
                  isClean());
          updateParticleFallback_ = null;
        }
        return updateParticleFallbackBuilder_;
      }

      private skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffset updateParticleOffset_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffset.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffset, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffset.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffsetOrBuilder> updateParticleOffsetBuilder_;
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleOffset update_particle_offset = 11;
       */
      public boolean hasUpdateParticleOffset() {
        return ((bitField0_ & 0x00000400) == 0x00000400);
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleOffset update_particle_offset = 11;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffset getUpdateParticleOffset() {
        if (updateParticleOffsetBuilder_ == null) {
          return updateParticleOffset_;
        } else {
          return updateParticleOffsetBuilder_.getMessage();
        }
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleOffset update_particle_offset = 11;
       */
      public Builder setUpdateParticleOffset(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffset value) {
        if (updateParticleOffsetBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          updateParticleOffset_ = value;
          onChanged();
        } else {
          updateParticleOffsetBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000400;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleOffset update_particle_offset = 11;
       */
      public Builder setUpdateParticleOffset(
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffset.Builder builderForValue) {
        if (updateParticleOffsetBuilder_ == null) {
          updateParticleOffset_ = builderForValue.build();
          onChanged();
        } else {
          updateParticleOffsetBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000400;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleOffset update_particle_offset = 11;
       */
      public Builder mergeUpdateParticleOffset(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffset value) {
        if (updateParticleOffsetBuilder_ == null) {
          if (((bitField0_ & 0x00000400) == 0x00000400) &&
              updateParticleOffset_ != skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffset.getDefaultInstance()) {
            updateParticleOffset_ =
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffset.newBuilder(updateParticleOffset_).mergeFrom(value).buildPartial();
          } else {
            updateParticleOffset_ = value;
          }
          onChanged();
        } else {
          updateParticleOffsetBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000400;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleOffset update_particle_offset = 11;
       */
      public Builder clearUpdateParticleOffset() {
        if (updateParticleOffsetBuilder_ == null) {
          updateParticleOffset_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffset.getDefaultInstance();
          onChanged();
        } else {
          updateParticleOffsetBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000400);
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleOffset update_particle_offset = 11;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffset.Builder getUpdateParticleOffsetBuilder() {
        bitField0_ |= 0x00000400;
        onChanged();
        return getUpdateParticleOffsetFieldBuilder().getBuilder();
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleOffset update_particle_offset = 11;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffsetOrBuilder getUpdateParticleOffsetOrBuilder() {
        if (updateParticleOffsetBuilder_ != null) {
          return updateParticleOffsetBuilder_.getMessageOrBuilder();
        } else {
          return updateParticleOffset_;
        }
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleOffset update_particle_offset = 11;
       */
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffset, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffset.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffsetOrBuilder> 
          getUpdateParticleOffsetFieldBuilder() {
        if (updateParticleOffsetBuilder_ == null) {
          updateParticleOffsetBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffset, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffset.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffsetOrBuilder>(
                  getUpdateParticleOffset(),
                  getParentForChildren(),
                  isClean());
          updateParticleOffset_ = null;
        }
        return updateParticleOffsetBuilder_;
      }

      private skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleEnt updateParticleEnt_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleEnt.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleEnt, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleEnt.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleEntOrBuilder> updateParticleEntBuilder_;
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleEnt update_particle_ent = 12;
       */
      public boolean hasUpdateParticleEnt() {
        return ((bitField0_ & 0x00000800) == 0x00000800);
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleEnt update_particle_ent = 12;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleEnt getUpdateParticleEnt() {
        if (updateParticleEntBuilder_ == null) {
          return updateParticleEnt_;
        } else {
          return updateParticleEntBuilder_.getMessage();
        }
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleEnt update_particle_ent = 12;
       */
      public Builder setUpdateParticleEnt(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleEnt value) {
        if (updateParticleEntBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          updateParticleEnt_ = value;
          onChanged();
        } else {
          updateParticleEntBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000800;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleEnt update_particle_ent = 12;
       */
      public Builder setUpdateParticleEnt(
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleEnt.Builder builderForValue) {
        if (updateParticleEntBuilder_ == null) {
          updateParticleEnt_ = builderForValue.build();
          onChanged();
        } else {
          updateParticleEntBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000800;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleEnt update_particle_ent = 12;
       */
      public Builder mergeUpdateParticleEnt(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleEnt value) {
        if (updateParticleEntBuilder_ == null) {
          if (((bitField0_ & 0x00000800) == 0x00000800) &&
              updateParticleEnt_ != skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleEnt.getDefaultInstance()) {
            updateParticleEnt_ =
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleEnt.newBuilder(updateParticleEnt_).mergeFrom(value).buildPartial();
          } else {
            updateParticleEnt_ = value;
          }
          onChanged();
        } else {
          updateParticleEntBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000800;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleEnt update_particle_ent = 12;
       */
      public Builder clearUpdateParticleEnt() {
        if (updateParticleEntBuilder_ == null) {
          updateParticleEnt_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleEnt.getDefaultInstance();
          onChanged();
        } else {
          updateParticleEntBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000800);
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleEnt update_particle_ent = 12;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleEnt.Builder getUpdateParticleEntBuilder() {
        bitField0_ |= 0x00000800;
        onChanged();
        return getUpdateParticleEntFieldBuilder().getBuilder();
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleEnt update_particle_ent = 12;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleEntOrBuilder getUpdateParticleEntOrBuilder() {
        if (updateParticleEntBuilder_ != null) {
          return updateParticleEntBuilder_.getMessageOrBuilder();
        } else {
          return updateParticleEnt_;
        }
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleEnt update_particle_ent = 12;
       */
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleEnt, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleEnt.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleEntOrBuilder> 
          getUpdateParticleEntFieldBuilder() {
        if (updateParticleEntBuilder_ == null) {
          updateParticleEntBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleEnt, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleEnt.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleEntOrBuilder>(
                  getUpdateParticleEnt(),
                  getParentForChildren(),
                  isClean());
          updateParticleEnt_ = null;
        }
        return updateParticleEntBuilder_;
      }

      private skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw updateParticleShouldDraw_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDrawOrBuilder> updateParticleShouldDrawBuilder_;
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw update_particle_should_draw = 14;
       */
      public boolean hasUpdateParticleShouldDraw() {
        return ((bitField0_ & 0x00001000) == 0x00001000);
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw update_particle_should_draw = 14;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw getUpdateParticleShouldDraw() {
        if (updateParticleShouldDrawBuilder_ == null) {
          return updateParticleShouldDraw_;
        } else {
          return updateParticleShouldDrawBuilder_.getMessage();
        }
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw update_particle_should_draw = 14;
       */
      public Builder setUpdateParticleShouldDraw(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw value) {
        if (updateParticleShouldDrawBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          updateParticleShouldDraw_ = value;
          onChanged();
        } else {
          updateParticleShouldDrawBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00001000;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw update_particle_should_draw = 14;
       */
      public Builder setUpdateParticleShouldDraw(
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw.Builder builderForValue) {
        if (updateParticleShouldDrawBuilder_ == null) {
          updateParticleShouldDraw_ = builderForValue.build();
          onChanged();
        } else {
          updateParticleShouldDrawBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00001000;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw update_particle_should_draw = 14;
       */
      public Builder mergeUpdateParticleShouldDraw(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw value) {
        if (updateParticleShouldDrawBuilder_ == null) {
          if (((bitField0_ & 0x00001000) == 0x00001000) &&
              updateParticleShouldDraw_ != skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw.getDefaultInstance()) {
            updateParticleShouldDraw_ =
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw.newBuilder(updateParticleShouldDraw_).mergeFrom(value).buildPartial();
          } else {
            updateParticleShouldDraw_ = value;
          }
          onChanged();
        } else {
          updateParticleShouldDrawBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00001000;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw update_particle_should_draw = 14;
       */
      public Builder clearUpdateParticleShouldDraw() {
        if (updateParticleShouldDrawBuilder_ == null) {
          updateParticleShouldDraw_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw.getDefaultInstance();
          onChanged();
        } else {
          updateParticleShouldDrawBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00001000);
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw update_particle_should_draw = 14;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw.Builder getUpdateParticleShouldDrawBuilder() {
        bitField0_ |= 0x00001000;
        onChanged();
        return getUpdateParticleShouldDrawFieldBuilder().getBuilder();
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw update_particle_should_draw = 14;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDrawOrBuilder getUpdateParticleShouldDrawOrBuilder() {
        if (updateParticleShouldDrawBuilder_ != null) {
          return updateParticleShouldDrawBuilder_.getMessageOrBuilder();
        } else {
          return updateParticleShouldDraw_;
        }
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw update_particle_should_draw = 14;
       */
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDrawOrBuilder> 
          getUpdateParticleShouldDrawFieldBuilder() {
        if (updateParticleShouldDrawBuilder_ == null) {
          updateParticleShouldDrawBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDrawOrBuilder>(
                  getUpdateParticleShouldDraw(),
                  getParentForChildren(),
                  isClean());
          updateParticleShouldDraw_ = null;
        }
        return updateParticleShouldDrawBuilder_;
      }

      private skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen updateParticleSetFrozen_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozenOrBuilder> updateParticleSetFrozenBuilder_;
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen update_particle_set_frozen = 15;
       */
      public boolean hasUpdateParticleSetFrozen() {
        return ((bitField0_ & 0x00002000) == 0x00002000);
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen update_particle_set_frozen = 15;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen getUpdateParticleSetFrozen() {
        if (updateParticleSetFrozenBuilder_ == null) {
          return updateParticleSetFrozen_;
        } else {
          return updateParticleSetFrozenBuilder_.getMessage();
        }
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen update_particle_set_frozen = 15;
       */
      public Builder setUpdateParticleSetFrozen(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen value) {
        if (updateParticleSetFrozenBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          updateParticleSetFrozen_ = value;
          onChanged();
        } else {
          updateParticleSetFrozenBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00002000;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen update_particle_set_frozen = 15;
       */
      public Builder setUpdateParticleSetFrozen(
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen.Builder builderForValue) {
        if (updateParticleSetFrozenBuilder_ == null) {
          updateParticleSetFrozen_ = builderForValue.build();
          onChanged();
        } else {
          updateParticleSetFrozenBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00002000;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen update_particle_set_frozen = 15;
       */
      public Builder mergeUpdateParticleSetFrozen(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen value) {
        if (updateParticleSetFrozenBuilder_ == null) {
          if (((bitField0_ & 0x00002000) == 0x00002000) &&
              updateParticleSetFrozen_ != skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen.getDefaultInstance()) {
            updateParticleSetFrozen_ =
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen.newBuilder(updateParticleSetFrozen_).mergeFrom(value).buildPartial();
          } else {
            updateParticleSetFrozen_ = value;
          }
          onChanged();
        } else {
          updateParticleSetFrozenBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00002000;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen update_particle_set_frozen = 15;
       */
      public Builder clearUpdateParticleSetFrozen() {
        if (updateParticleSetFrozenBuilder_ == null) {
          updateParticleSetFrozen_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen.getDefaultInstance();
          onChanged();
        } else {
          updateParticleSetFrozenBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00002000);
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen update_particle_set_frozen = 15;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen.Builder getUpdateParticleSetFrozenBuilder() {
        bitField0_ |= 0x00002000;
        onChanged();
        return getUpdateParticleSetFrozenFieldBuilder().getBuilder();
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen update_particle_set_frozen = 15;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozenOrBuilder getUpdateParticleSetFrozenOrBuilder() {
        if (updateParticleSetFrozenBuilder_ != null) {
          return updateParticleSetFrozenBuilder_.getMessageOrBuilder();
        } else {
          return updateParticleSetFrozen_;
        }
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen update_particle_set_frozen = 15;
       */
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozenOrBuilder> 
          getUpdateParticleSetFrozenFieldBuilder() {
        if (updateParticleSetFrozenBuilder_ == null) {
          updateParticleSetFrozenBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozenOrBuilder>(
                  getUpdateParticleSetFrozen(),
                  getParentForChildren(),
                  isClean());
          updateParticleSetFrozen_ = null;
        }
        return updateParticleSetFrozenBuilder_;
      }

      private skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ChangeControlPointAttachment changeControlPointAttachment_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ChangeControlPointAttachment.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ChangeControlPointAttachment, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ChangeControlPointAttachment.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ChangeControlPointAttachmentOrBuilder> changeControlPointAttachmentBuilder_;
      /**
       * optional .CDOTAUserMsg_ParticleManager.ChangeControlPointAttachment change_control_point_attachment = 16;
       */
      public boolean hasChangeControlPointAttachment() {
        return ((bitField0_ & 0x00004000) == 0x00004000);
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.ChangeControlPointAttachment change_control_point_attachment = 16;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ChangeControlPointAttachment getChangeControlPointAttachment() {
        if (changeControlPointAttachmentBuilder_ == null) {
          return changeControlPointAttachment_;
        } else {
          return changeControlPointAttachmentBuilder_.getMessage();
        }
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.ChangeControlPointAttachment change_control_point_attachment = 16;
       */
      public Builder setChangeControlPointAttachment(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ChangeControlPointAttachment value) {
        if (changeControlPointAttachmentBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          changeControlPointAttachment_ = value;
          onChanged();
        } else {
          changeControlPointAttachmentBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00004000;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.ChangeControlPointAttachment change_control_point_attachment = 16;
       */
      public Builder setChangeControlPointAttachment(
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ChangeControlPointAttachment.Builder builderForValue) {
        if (changeControlPointAttachmentBuilder_ == null) {
          changeControlPointAttachment_ = builderForValue.build();
          onChanged();
        } else {
          changeControlPointAttachmentBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00004000;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.ChangeControlPointAttachment change_control_point_attachment = 16;
       */
      public Builder mergeChangeControlPointAttachment(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ChangeControlPointAttachment value) {
        if (changeControlPointAttachmentBuilder_ == null) {
          if (((bitField0_ & 0x00004000) == 0x00004000) &&
              changeControlPointAttachment_ != skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ChangeControlPointAttachment.getDefaultInstance()) {
            changeControlPointAttachment_ =
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ChangeControlPointAttachment.newBuilder(changeControlPointAttachment_).mergeFrom(value).buildPartial();
          } else {
            changeControlPointAttachment_ = value;
          }
          onChanged();
        } else {
          changeControlPointAttachmentBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00004000;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.ChangeControlPointAttachment change_control_point_attachment = 16;
       */
      public Builder clearChangeControlPointAttachment() {
        if (changeControlPointAttachmentBuilder_ == null) {
          changeControlPointAttachment_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ChangeControlPointAttachment.getDefaultInstance();
          onChanged();
        } else {
          changeControlPointAttachmentBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00004000);
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.ChangeControlPointAttachment change_control_point_attachment = 16;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ChangeControlPointAttachment.Builder getChangeControlPointAttachmentBuilder() {
        bitField0_ |= 0x00004000;
        onChanged();
        return getChangeControlPointAttachmentFieldBuilder().getBuilder();
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.ChangeControlPointAttachment change_control_point_attachment = 16;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ChangeControlPointAttachmentOrBuilder getChangeControlPointAttachmentOrBuilder() {
        if (changeControlPointAttachmentBuilder_ != null) {
          return changeControlPointAttachmentBuilder_.getMessageOrBuilder();
        } else {
          return changeControlPointAttachment_;
        }
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.ChangeControlPointAttachment change_control_point_attachment = 16;
       */
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ChangeControlPointAttachment, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ChangeControlPointAttachment.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ChangeControlPointAttachmentOrBuilder> 
          getChangeControlPointAttachmentFieldBuilder() {
        if (changeControlPointAttachmentBuilder_ == null) {
          changeControlPointAttachmentBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ChangeControlPointAttachment, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ChangeControlPointAttachment.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.ChangeControlPointAttachmentOrBuilder>(
                  getChangeControlPointAttachment(),
                  getParentForChildren(),
                  isClean());
          changeControlPointAttachment_ = null;
        }
        return changeControlPointAttachmentBuilder_;
      }

      private skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateEntityPosition updateEntityPosition_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateEntityPosition.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateEntityPosition, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateEntityPosition.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateEntityPositionOrBuilder> updateEntityPositionBuilder_;
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateEntityPosition update_entity_position = 17;
       */
      public boolean hasUpdateEntityPosition() {
        return ((bitField0_ & 0x00008000) == 0x00008000);
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateEntityPosition update_entity_position = 17;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateEntityPosition getUpdateEntityPosition() {
        if (updateEntityPositionBuilder_ == null) {
          return updateEntityPosition_;
        } else {
          return updateEntityPositionBuilder_.getMessage();
        }
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateEntityPosition update_entity_position = 17;
       */
      public Builder setUpdateEntityPosition(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateEntityPosition value) {
        if (updateEntityPositionBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          updateEntityPosition_ = value;
          onChanged();
        } else {
          updateEntityPositionBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00008000;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateEntityPosition update_entity_position = 17;
       */
      public Builder setUpdateEntityPosition(
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateEntityPosition.Builder builderForValue) {
        if (updateEntityPositionBuilder_ == null) {
          updateEntityPosition_ = builderForValue.build();
          onChanged();
        } else {
          updateEntityPositionBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00008000;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateEntityPosition update_entity_position = 17;
       */
      public Builder mergeUpdateEntityPosition(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateEntityPosition value) {
        if (updateEntityPositionBuilder_ == null) {
          if (((bitField0_ & 0x00008000) == 0x00008000) &&
              updateEntityPosition_ != skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateEntityPosition.getDefaultInstance()) {
            updateEntityPosition_ =
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateEntityPosition.newBuilder(updateEntityPosition_).mergeFrom(value).buildPartial();
          } else {
            updateEntityPosition_ = value;
          }
          onChanged();
        } else {
          updateEntityPositionBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00008000;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateEntityPosition update_entity_position = 17;
       */
      public Builder clearUpdateEntityPosition() {
        if (updateEntityPositionBuilder_ == null) {
          updateEntityPosition_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateEntityPosition.getDefaultInstance();
          onChanged();
        } else {
          updateEntityPositionBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00008000);
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateEntityPosition update_entity_position = 17;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateEntityPosition.Builder getUpdateEntityPositionBuilder() {
        bitField0_ |= 0x00008000;
        onChanged();
        return getUpdateEntityPositionFieldBuilder().getBuilder();
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateEntityPosition update_entity_position = 17;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateEntityPositionOrBuilder getUpdateEntityPositionOrBuilder() {
        if (updateEntityPositionBuilder_ != null) {
          return updateEntityPositionBuilder_.getMessageOrBuilder();
        } else {
          return updateEntityPosition_;
        }
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateEntityPosition update_entity_position = 17;
       */
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateEntityPosition, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateEntityPosition.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateEntityPositionOrBuilder> 
          getUpdateEntityPositionFieldBuilder() {
        if (updateEntityPositionBuilder_ == null) {
          updateEntityPositionBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateEntityPosition, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateEntityPosition.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.UpdateEntityPositionOrBuilder>(
                  getUpdateEntityPosition(),
                  getParentForChildren(),
                  isClean());
          updateEntityPosition_ = null;
        }
        return updateEntityPositionBuilder_;
      }

      private skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleFoWProperties setParticleFowProperties_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleFoWProperties.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleFoWProperties, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleFoWProperties.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleFoWPropertiesOrBuilder> setParticleFowPropertiesBuilder_;
      /**
       * optional .CDOTAUserMsg_ParticleManager.SetParticleFoWProperties set_particle_fow_properties = 18;
       */
      public boolean hasSetParticleFowProperties() {
        return ((bitField0_ & 0x00010000) == 0x00010000);
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.SetParticleFoWProperties set_particle_fow_properties = 18;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleFoWProperties getSetParticleFowProperties() {
        if (setParticleFowPropertiesBuilder_ == null) {
          return setParticleFowProperties_;
        } else {
          return setParticleFowPropertiesBuilder_.getMessage();
        }
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.SetParticleFoWProperties set_particle_fow_properties = 18;
       */
      public Builder setSetParticleFowProperties(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleFoWProperties value) {
        if (setParticleFowPropertiesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          setParticleFowProperties_ = value;
          onChanged();
        } else {
          setParticleFowPropertiesBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00010000;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.SetParticleFoWProperties set_particle_fow_properties = 18;
       */
      public Builder setSetParticleFowProperties(
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleFoWProperties.Builder builderForValue) {
        if (setParticleFowPropertiesBuilder_ == null) {
          setParticleFowProperties_ = builderForValue.build();
          onChanged();
        } else {
          setParticleFowPropertiesBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00010000;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.SetParticleFoWProperties set_particle_fow_properties = 18;
       */
      public Builder mergeSetParticleFowProperties(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleFoWProperties value) {
        if (setParticleFowPropertiesBuilder_ == null) {
          if (((bitField0_ & 0x00010000) == 0x00010000) &&
              setParticleFowProperties_ != skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleFoWProperties.getDefaultInstance()) {
            setParticleFowProperties_ =
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleFoWProperties.newBuilder(setParticleFowProperties_).mergeFrom(value).buildPartial();
          } else {
            setParticleFowProperties_ = value;
          }
          onChanged();
        } else {
          setParticleFowPropertiesBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00010000;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.SetParticleFoWProperties set_particle_fow_properties = 18;
       */
      public Builder clearSetParticleFowProperties() {
        if (setParticleFowPropertiesBuilder_ == null) {
          setParticleFowProperties_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleFoWProperties.getDefaultInstance();
          onChanged();
        } else {
          setParticleFowPropertiesBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00010000);
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.SetParticleFoWProperties set_particle_fow_properties = 18;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleFoWProperties.Builder getSetParticleFowPropertiesBuilder() {
        bitField0_ |= 0x00010000;
        onChanged();
        return getSetParticleFowPropertiesFieldBuilder().getBuilder();
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.SetParticleFoWProperties set_particle_fow_properties = 18;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleFoWPropertiesOrBuilder getSetParticleFowPropertiesOrBuilder() {
        if (setParticleFowPropertiesBuilder_ != null) {
          return setParticleFowPropertiesBuilder_.getMessageOrBuilder();
        } else {
          return setParticleFowProperties_;
        }
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.SetParticleFoWProperties set_particle_fow_properties = 18;
       */
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleFoWProperties, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleFoWProperties.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleFoWPropertiesOrBuilder> 
          getSetParticleFowPropertiesFieldBuilder() {
        if (setParticleFowPropertiesBuilder_ == null) {
          setParticleFowPropertiesBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleFoWProperties, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleFoWProperties.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleFoWPropertiesOrBuilder>(
                  getSetParticleFowProperties(),
                  getParentForChildren(),
                  isClean());
          setParticleFowProperties_ = null;
        }
        return setParticleFowPropertiesBuilder_;
      }

      private skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleText setParticleText_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleText.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleText, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleText.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleTextOrBuilder> setParticleTextBuilder_;
      /**
       * optional .CDOTAUserMsg_ParticleManager.SetParticleText set_particle_text = 19;
       */
      public boolean hasSetParticleText() {
        return ((bitField0_ & 0x00020000) == 0x00020000);
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.SetParticleText set_particle_text = 19;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleText getSetParticleText() {
        if (setParticleTextBuilder_ == null) {
          return setParticleText_;
        } else {
          return setParticleTextBuilder_.getMessage();
        }
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.SetParticleText set_particle_text = 19;
       */
      public Builder setSetParticleText(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleText value) {
        if (setParticleTextBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          setParticleText_ = value;
          onChanged();
        } else {
          setParticleTextBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00020000;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.SetParticleText set_particle_text = 19;
       */
      public Builder setSetParticleText(
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleText.Builder builderForValue) {
        if (setParticleTextBuilder_ == null) {
          setParticleText_ = builderForValue.build();
          onChanged();
        } else {
          setParticleTextBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00020000;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.SetParticleText set_particle_text = 19;
       */
      public Builder mergeSetParticleText(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleText value) {
        if (setParticleTextBuilder_ == null) {
          if (((bitField0_ & 0x00020000) == 0x00020000) &&
              setParticleText_ != skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleText.getDefaultInstance()) {
            setParticleText_ =
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleText.newBuilder(setParticleText_).mergeFrom(value).buildPartial();
          } else {
            setParticleText_ = value;
          }
          onChanged();
        } else {
          setParticleTextBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00020000;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.SetParticleText set_particle_text = 19;
       */
      public Builder clearSetParticleText() {
        if (setParticleTextBuilder_ == null) {
          setParticleText_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleText.getDefaultInstance();
          onChanged();
        } else {
          setParticleTextBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00020000);
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.SetParticleText set_particle_text = 19;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleText.Builder getSetParticleTextBuilder() {
        bitField0_ |= 0x00020000;
        onChanged();
        return getSetParticleTextFieldBuilder().getBuilder();
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.SetParticleText set_particle_text = 19;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleTextOrBuilder getSetParticleTextOrBuilder() {
        if (setParticleTextBuilder_ != null) {
          return setParticleTextBuilder_.getMessageOrBuilder();
        } else {
          return setParticleText_;
        }
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.SetParticleText set_particle_text = 19;
       */
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleText, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleText.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleTextOrBuilder> 
          getSetParticleTextFieldBuilder() {
        if (setParticleTextBuilder_ == null) {
          setParticleTextBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleText, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleText.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleTextOrBuilder>(
                  getSetParticleText(),
                  getParentForChildren(),
                  isClean());
          setParticleText_ = null;
        }
        return setParticleTextBuilder_;
      }

      private skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleShouldCheckFoW setParticleShouldCheckFow_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleShouldCheckFoW.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleShouldCheckFoW, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleShouldCheckFoW.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleShouldCheckFoWOrBuilder> setParticleShouldCheckFowBuilder_;
      /**
       * optional .CDOTAUserMsg_ParticleManager.SetParticleShouldCheckFoW set_particle_should_check_fow = 20;
       */
      public boolean hasSetParticleShouldCheckFow() {
        return ((bitField0_ & 0x00040000) == 0x00040000);
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.SetParticleShouldCheckFoW set_particle_should_check_fow = 20;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleShouldCheckFoW getSetParticleShouldCheckFow() {
        if (setParticleShouldCheckFowBuilder_ == null) {
          return setParticleShouldCheckFow_;
        } else {
          return setParticleShouldCheckFowBuilder_.getMessage();
        }
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.SetParticleShouldCheckFoW set_particle_should_check_fow = 20;
       */
      public Builder setSetParticleShouldCheckFow(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleShouldCheckFoW value) {
        if (setParticleShouldCheckFowBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          setParticleShouldCheckFow_ = value;
          onChanged();
        } else {
          setParticleShouldCheckFowBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00040000;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.SetParticleShouldCheckFoW set_particle_should_check_fow = 20;
       */
      public Builder setSetParticleShouldCheckFow(
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleShouldCheckFoW.Builder builderForValue) {
        if (setParticleShouldCheckFowBuilder_ == null) {
          setParticleShouldCheckFow_ = builderForValue.build();
          onChanged();
        } else {
          setParticleShouldCheckFowBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00040000;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.SetParticleShouldCheckFoW set_particle_should_check_fow = 20;
       */
      public Builder mergeSetParticleShouldCheckFow(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleShouldCheckFoW value) {
        if (setParticleShouldCheckFowBuilder_ == null) {
          if (((bitField0_ & 0x00040000) == 0x00040000) &&
              setParticleShouldCheckFow_ != skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleShouldCheckFoW.getDefaultInstance()) {
            setParticleShouldCheckFow_ =
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleShouldCheckFoW.newBuilder(setParticleShouldCheckFow_).mergeFrom(value).buildPartial();
          } else {
            setParticleShouldCheckFow_ = value;
          }
          onChanged();
        } else {
          setParticleShouldCheckFowBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00040000;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.SetParticleShouldCheckFoW set_particle_should_check_fow = 20;
       */
      public Builder clearSetParticleShouldCheckFow() {
        if (setParticleShouldCheckFowBuilder_ == null) {
          setParticleShouldCheckFow_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleShouldCheckFoW.getDefaultInstance();
          onChanged();
        } else {
          setParticleShouldCheckFowBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00040000);
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.SetParticleShouldCheckFoW set_particle_should_check_fow = 20;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleShouldCheckFoW.Builder getSetParticleShouldCheckFowBuilder() {
        bitField0_ |= 0x00040000;
        onChanged();
        return getSetParticleShouldCheckFowFieldBuilder().getBuilder();
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.SetParticleShouldCheckFoW set_particle_should_check_fow = 20;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleShouldCheckFoWOrBuilder getSetParticleShouldCheckFowOrBuilder() {
        if (setParticleShouldCheckFowBuilder_ != null) {
          return setParticleShouldCheckFowBuilder_.getMessageOrBuilder();
        } else {
          return setParticleShouldCheckFow_;
        }
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.SetParticleShouldCheckFoW set_particle_should_check_fow = 20;
       */
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleShouldCheckFoW, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleShouldCheckFoW.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleShouldCheckFoWOrBuilder> 
          getSetParticleShouldCheckFowFieldBuilder() {
        if (setParticleShouldCheckFowBuilder_ == null) {
          setParticleShouldCheckFowBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleShouldCheckFoW, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleShouldCheckFoW.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetParticleShouldCheckFoWOrBuilder>(
                  getSetParticleShouldCheckFow(),
                  getParentForChildren(),
                  isClean());
          setParticleShouldCheckFow_ = null;
        }
        return setParticleShouldCheckFowBuilder_;
      }

      private skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointModel setControlPointModel_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointModel.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointModel, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointModel.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointModelOrBuilder> setControlPointModelBuilder_;
      /**
       * optional .CDOTAUserMsg_ParticleManager.SetControlPointModel set_control_point_model = 21;
       */
      public boolean hasSetControlPointModel() {
        return ((bitField0_ & 0x00080000) == 0x00080000);
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.SetControlPointModel set_control_point_model = 21;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointModel getSetControlPointModel() {
        if (setControlPointModelBuilder_ == null) {
          return setControlPointModel_;
        } else {
          return setControlPointModelBuilder_.getMessage();
        }
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.SetControlPointModel set_control_point_model = 21;
       */
      public Builder setSetControlPointModel(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointModel value) {
        if (setControlPointModelBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          setControlPointModel_ = value;
          onChanged();
        } else {
          setControlPointModelBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00080000;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.SetControlPointModel set_control_point_model = 21;
       */
      public Builder setSetControlPointModel(
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointModel.Builder builderForValue) {
        if (setControlPointModelBuilder_ == null) {
          setControlPointModel_ = builderForValue.build();
          onChanged();
        } else {
          setControlPointModelBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00080000;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.SetControlPointModel set_control_point_model = 21;
       */
      public Builder mergeSetControlPointModel(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointModel value) {
        if (setControlPointModelBuilder_ == null) {
          if (((bitField0_ & 0x00080000) == 0x00080000) &&
              setControlPointModel_ != skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointModel.getDefaultInstance()) {
            setControlPointModel_ =
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointModel.newBuilder(setControlPointModel_).mergeFrom(value).buildPartial();
          } else {
            setControlPointModel_ = value;
          }
          onChanged();
        } else {
          setControlPointModelBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00080000;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.SetControlPointModel set_control_point_model = 21;
       */
      public Builder clearSetControlPointModel() {
        if (setControlPointModelBuilder_ == null) {
          setControlPointModel_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointModel.getDefaultInstance();
          onChanged();
        } else {
          setControlPointModelBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00080000);
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.SetControlPointModel set_control_point_model = 21;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointModel.Builder getSetControlPointModelBuilder() {
        bitField0_ |= 0x00080000;
        onChanged();
        return getSetControlPointModelFieldBuilder().getBuilder();
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.SetControlPointModel set_control_point_model = 21;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointModelOrBuilder getSetControlPointModelOrBuilder() {
        if (setControlPointModelBuilder_ != null) {
          return setControlPointModelBuilder_.getMessageOrBuilder();
        } else {
          return setControlPointModel_;
        }
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.SetControlPointModel set_control_point_model = 21;
       */
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointModel, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointModel.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointModelOrBuilder> 
          getSetControlPointModelFieldBuilder() {
        if (setControlPointModelBuilder_ == null) {
          setControlPointModelBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointModel, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointModel.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointModelOrBuilder>(
                  getSetControlPointModel(),
                  getParentForChildren(),
                  isClean());
          setControlPointModel_ = null;
        }
        return setControlPointModelBuilder_;
      }

      private skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointSnapshot setControlPointSnapshot_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointSnapshot.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointSnapshot, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointSnapshot.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointSnapshotOrBuilder> setControlPointSnapshotBuilder_;
      /**
       * optional .CDOTAUserMsg_ParticleManager.SetControlPointSnapshot set_control_point_snapshot = 22;
       */
      public boolean hasSetControlPointSnapshot() {
        return ((bitField0_ & 0x00100000) == 0x00100000);
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.SetControlPointSnapshot set_control_point_snapshot = 22;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointSnapshot getSetControlPointSnapshot() {
        if (setControlPointSnapshotBuilder_ == null) {
          return setControlPointSnapshot_;
        } else {
          return setControlPointSnapshotBuilder_.getMessage();
        }
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.SetControlPointSnapshot set_control_point_snapshot = 22;
       */
      public Builder setSetControlPointSnapshot(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointSnapshot value) {
        if (setControlPointSnapshotBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          setControlPointSnapshot_ = value;
          onChanged();
        } else {
          setControlPointSnapshotBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00100000;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.SetControlPointSnapshot set_control_point_snapshot = 22;
       */
      public Builder setSetControlPointSnapshot(
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointSnapshot.Builder builderForValue) {
        if (setControlPointSnapshotBuilder_ == null) {
          setControlPointSnapshot_ = builderForValue.build();
          onChanged();
        } else {
          setControlPointSnapshotBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00100000;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.SetControlPointSnapshot set_control_point_snapshot = 22;
       */
      public Builder mergeSetControlPointSnapshot(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointSnapshot value) {
        if (setControlPointSnapshotBuilder_ == null) {
          if (((bitField0_ & 0x00100000) == 0x00100000) &&
              setControlPointSnapshot_ != skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointSnapshot.getDefaultInstance()) {
            setControlPointSnapshot_ =
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointSnapshot.newBuilder(setControlPointSnapshot_).mergeFrom(value).buildPartial();
          } else {
            setControlPointSnapshot_ = value;
          }
          onChanged();
        } else {
          setControlPointSnapshotBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00100000;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.SetControlPointSnapshot set_control_point_snapshot = 22;
       */
      public Builder clearSetControlPointSnapshot() {
        if (setControlPointSnapshotBuilder_ == null) {
          setControlPointSnapshot_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointSnapshot.getDefaultInstance();
          onChanged();
        } else {
          setControlPointSnapshotBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00100000);
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.SetControlPointSnapshot set_control_point_snapshot = 22;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointSnapshot.Builder getSetControlPointSnapshotBuilder() {
        bitField0_ |= 0x00100000;
        onChanged();
        return getSetControlPointSnapshotFieldBuilder().getBuilder();
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.SetControlPointSnapshot set_control_point_snapshot = 22;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointSnapshotOrBuilder getSetControlPointSnapshotOrBuilder() {
        if (setControlPointSnapshotBuilder_ != null) {
          return setControlPointSnapshotBuilder_.getMessageOrBuilder();
        } else {
          return setControlPointSnapshot_;
        }
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.SetControlPointSnapshot set_control_point_snapshot = 22;
       */
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointSnapshot, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointSnapshot.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointSnapshotOrBuilder> 
          getSetControlPointSnapshotFieldBuilder() {
        if (setControlPointSnapshotBuilder_ == null) {
          setControlPointSnapshotBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointSnapshot, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointSnapshot.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetControlPointSnapshotOrBuilder>(
                  getSetControlPointSnapshot(),
                  getParentForChildren(),
                  isClean());
          setControlPointSnapshot_ = null;
        }
        return setControlPointSnapshotBuilder_;
      }

      private skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetTextureAttribute setTextureAttribute_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetTextureAttribute.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetTextureAttribute, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetTextureAttribute.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetTextureAttributeOrBuilder> setTextureAttributeBuilder_;
      /**
       * optional .CDOTAUserMsg_ParticleManager.SetTextureAttribute set_texture_attribute = 23;
       */
      public boolean hasSetTextureAttribute() {
        return ((bitField0_ & 0x00200000) == 0x00200000);
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.SetTextureAttribute set_texture_attribute = 23;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetTextureAttribute getSetTextureAttribute() {
        if (setTextureAttributeBuilder_ == null) {
          return setTextureAttribute_;
        } else {
          return setTextureAttributeBuilder_.getMessage();
        }
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.SetTextureAttribute set_texture_attribute = 23;
       */
      public Builder setSetTextureAttribute(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetTextureAttribute value) {
        if (setTextureAttributeBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          setTextureAttribute_ = value;
          onChanged();
        } else {
          setTextureAttributeBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00200000;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.SetTextureAttribute set_texture_attribute = 23;
       */
      public Builder setSetTextureAttribute(
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetTextureAttribute.Builder builderForValue) {
        if (setTextureAttributeBuilder_ == null) {
          setTextureAttribute_ = builderForValue.build();
          onChanged();
        } else {
          setTextureAttributeBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00200000;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.SetTextureAttribute set_texture_attribute = 23;
       */
      public Builder mergeSetTextureAttribute(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetTextureAttribute value) {
        if (setTextureAttributeBuilder_ == null) {
          if (((bitField0_ & 0x00200000) == 0x00200000) &&
              setTextureAttribute_ != skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetTextureAttribute.getDefaultInstance()) {
            setTextureAttribute_ =
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetTextureAttribute.newBuilder(setTextureAttribute_).mergeFrom(value).buildPartial();
          } else {
            setTextureAttribute_ = value;
          }
          onChanged();
        } else {
          setTextureAttributeBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00200000;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.SetTextureAttribute set_texture_attribute = 23;
       */
      public Builder clearSetTextureAttribute() {
        if (setTextureAttributeBuilder_ == null) {
          setTextureAttribute_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetTextureAttribute.getDefaultInstance();
          onChanged();
        } else {
          setTextureAttributeBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00200000);
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.SetTextureAttribute set_texture_attribute = 23;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetTextureAttribute.Builder getSetTextureAttributeBuilder() {
        bitField0_ |= 0x00200000;
        onChanged();
        return getSetTextureAttributeFieldBuilder().getBuilder();
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.SetTextureAttribute set_texture_attribute = 23;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetTextureAttributeOrBuilder getSetTextureAttributeOrBuilder() {
        if (setTextureAttributeBuilder_ != null) {
          return setTextureAttributeBuilder_.getMessageOrBuilder();
        } else {
          return setTextureAttribute_;
        }
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.SetTextureAttribute set_texture_attribute = 23;
       */
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetTextureAttribute, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetTextureAttribute.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetTextureAttributeOrBuilder> 
          getSetTextureAttributeFieldBuilder() {
        if (setTextureAttributeBuilder_ == null) {
          setTextureAttributeBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetTextureAttribute, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetTextureAttribute.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetTextureAttributeOrBuilder>(
                  getSetTextureAttribute(),
                  getParentForChildren(),
                  isClean());
          setTextureAttribute_ = null;
        }
        return setTextureAttributeBuilder_;
      }

      private skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectGenericFlag setSceneObjectGenericFlag_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectGenericFlag.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectGenericFlag, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectGenericFlag.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectGenericFlagOrBuilder> setSceneObjectGenericFlagBuilder_;
      /**
       * optional .CDOTAUserMsg_ParticleManager.SetSceneObjectGenericFlag set_scene_object_generic_flag = 24;
       */
      public boolean hasSetSceneObjectGenericFlag() {
        return ((bitField0_ & 0x00400000) == 0x00400000);
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.SetSceneObjectGenericFlag set_scene_object_generic_flag = 24;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectGenericFlag getSetSceneObjectGenericFlag() {
        if (setSceneObjectGenericFlagBuilder_ == null) {
          return setSceneObjectGenericFlag_;
        } else {
          return setSceneObjectGenericFlagBuilder_.getMessage();
        }
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.SetSceneObjectGenericFlag set_scene_object_generic_flag = 24;
       */
      public Builder setSetSceneObjectGenericFlag(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectGenericFlag value) {
        if (setSceneObjectGenericFlagBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          setSceneObjectGenericFlag_ = value;
          onChanged();
        } else {
          setSceneObjectGenericFlagBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00400000;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.SetSceneObjectGenericFlag set_scene_object_generic_flag = 24;
       */
      public Builder setSetSceneObjectGenericFlag(
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectGenericFlag.Builder builderForValue) {
        if (setSceneObjectGenericFlagBuilder_ == null) {
          setSceneObjectGenericFlag_ = builderForValue.build();
          onChanged();
        } else {
          setSceneObjectGenericFlagBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00400000;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.SetSceneObjectGenericFlag set_scene_object_generic_flag = 24;
       */
      public Builder mergeSetSceneObjectGenericFlag(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectGenericFlag value) {
        if (setSceneObjectGenericFlagBuilder_ == null) {
          if (((bitField0_ & 0x00400000) == 0x00400000) &&
              setSceneObjectGenericFlag_ != skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectGenericFlag.getDefaultInstance()) {
            setSceneObjectGenericFlag_ =
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectGenericFlag.newBuilder(setSceneObjectGenericFlag_).mergeFrom(value).buildPartial();
          } else {
            setSceneObjectGenericFlag_ = value;
          }
          onChanged();
        } else {
          setSceneObjectGenericFlagBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00400000;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.SetSceneObjectGenericFlag set_scene_object_generic_flag = 24;
       */
      public Builder clearSetSceneObjectGenericFlag() {
        if (setSceneObjectGenericFlagBuilder_ == null) {
          setSceneObjectGenericFlag_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectGenericFlag.getDefaultInstance();
          onChanged();
        } else {
          setSceneObjectGenericFlagBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00400000);
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.SetSceneObjectGenericFlag set_scene_object_generic_flag = 24;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectGenericFlag.Builder getSetSceneObjectGenericFlagBuilder() {
        bitField0_ |= 0x00400000;
        onChanged();
        return getSetSceneObjectGenericFlagFieldBuilder().getBuilder();
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.SetSceneObjectGenericFlag set_scene_object_generic_flag = 24;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectGenericFlagOrBuilder getSetSceneObjectGenericFlagOrBuilder() {
        if (setSceneObjectGenericFlagBuilder_ != null) {
          return setSceneObjectGenericFlagBuilder_.getMessageOrBuilder();
        } else {
          return setSceneObjectGenericFlag_;
        }
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.SetSceneObjectGenericFlag set_scene_object_generic_flag = 24;
       */
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectGenericFlag, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectGenericFlag.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectGenericFlagOrBuilder> 
          getSetSceneObjectGenericFlagFieldBuilder() {
        if (setSceneObjectGenericFlagBuilder_ == null) {
          setSceneObjectGenericFlagBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectGenericFlag, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectGenericFlag.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectGenericFlagOrBuilder>(
                  getSetSceneObjectGenericFlag(),
                  getParentForChildren(),
                  isClean());
          setSceneObjectGenericFlag_ = null;
        }
        return setSceneObjectGenericFlagBuilder_;
      }

      private skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectTintAndDesat setSceneObjectTintAndDesat_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectTintAndDesat.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectTintAndDesat, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectTintAndDesat.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectTintAndDesatOrBuilder> setSceneObjectTintAndDesatBuilder_;
      /**
       * optional .CDOTAUserMsg_ParticleManager.SetSceneObjectTintAndDesat set_scene_object_tint_and_desat = 25;
       */
      public boolean hasSetSceneObjectTintAndDesat() {
        return ((bitField0_ & 0x00800000) == 0x00800000);
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.SetSceneObjectTintAndDesat set_scene_object_tint_and_desat = 25;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectTintAndDesat getSetSceneObjectTintAndDesat() {
        if (setSceneObjectTintAndDesatBuilder_ == null) {
          return setSceneObjectTintAndDesat_;
        } else {
          return setSceneObjectTintAndDesatBuilder_.getMessage();
        }
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.SetSceneObjectTintAndDesat set_scene_object_tint_and_desat = 25;
       */
      public Builder setSetSceneObjectTintAndDesat(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectTintAndDesat value) {
        if (setSceneObjectTintAndDesatBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          setSceneObjectTintAndDesat_ = value;
          onChanged();
        } else {
          setSceneObjectTintAndDesatBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00800000;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.SetSceneObjectTintAndDesat set_scene_object_tint_and_desat = 25;
       */
      public Builder setSetSceneObjectTintAndDesat(
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectTintAndDesat.Builder builderForValue) {
        if (setSceneObjectTintAndDesatBuilder_ == null) {
          setSceneObjectTintAndDesat_ = builderForValue.build();
          onChanged();
        } else {
          setSceneObjectTintAndDesatBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00800000;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.SetSceneObjectTintAndDesat set_scene_object_tint_and_desat = 25;
       */
      public Builder mergeSetSceneObjectTintAndDesat(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectTintAndDesat value) {
        if (setSceneObjectTintAndDesatBuilder_ == null) {
          if (((bitField0_ & 0x00800000) == 0x00800000) &&
              setSceneObjectTintAndDesat_ != skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectTintAndDesat.getDefaultInstance()) {
            setSceneObjectTintAndDesat_ =
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectTintAndDesat.newBuilder(setSceneObjectTintAndDesat_).mergeFrom(value).buildPartial();
          } else {
            setSceneObjectTintAndDesat_ = value;
          }
          onChanged();
        } else {
          setSceneObjectTintAndDesatBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00800000;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.SetSceneObjectTintAndDesat set_scene_object_tint_and_desat = 25;
       */
      public Builder clearSetSceneObjectTintAndDesat() {
        if (setSceneObjectTintAndDesatBuilder_ == null) {
          setSceneObjectTintAndDesat_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectTintAndDesat.getDefaultInstance();
          onChanged();
        } else {
          setSceneObjectTintAndDesatBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00800000);
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.SetSceneObjectTintAndDesat set_scene_object_tint_and_desat = 25;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectTintAndDesat.Builder getSetSceneObjectTintAndDesatBuilder() {
        bitField0_ |= 0x00800000;
        onChanged();
        return getSetSceneObjectTintAndDesatFieldBuilder().getBuilder();
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.SetSceneObjectTintAndDesat set_scene_object_tint_and_desat = 25;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectTintAndDesatOrBuilder getSetSceneObjectTintAndDesatOrBuilder() {
        if (setSceneObjectTintAndDesatBuilder_ != null) {
          return setSceneObjectTintAndDesatBuilder_.getMessageOrBuilder();
        } else {
          return setSceneObjectTintAndDesat_;
        }
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.SetSceneObjectTintAndDesat set_scene_object_tint_and_desat = 25;
       */
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectTintAndDesat, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectTintAndDesat.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectTintAndDesatOrBuilder> 
          getSetSceneObjectTintAndDesatFieldBuilder() {
        if (setSceneObjectTintAndDesatBuilder_ == null) {
          setSceneObjectTintAndDesatBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectTintAndDesat, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectTintAndDesat.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ParticleManager.SetSceneObjectTintAndDesatOrBuilder>(
                  getSetSceneObjectTintAndDesat(),
                  getParentForChildren(),
                  isClean());
          setSceneObjectTintAndDesat_ = null;
        }
        return setSceneObjectTintAndDesatBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_ParticleManager)
    }

    static {
      defaultInstance = new CDOTAUserMsg_ParticleManager(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_ParticleManager)
  }

  public interface CDOTAUserMsg_OverheadEventOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_OverheadEvent)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional .DOTA_OVERHEAD_ALERT message_type = 1 [default = OVERHEAD_ALERT_GOLD];
     */
    boolean hasMessageType();
    /**
     * optional .DOTA_OVERHEAD_ALERT message_type = 1 [default = OVERHEAD_ALERT_GOLD];
     */
    skadistats.clarity.wire.common.proto.DotaUserMessages.DOTA_OVERHEAD_ALERT getMessageType();

    /**
     * optional int32 value = 2;
     */
    boolean hasValue();
    /**
     * optional int32 value = 2;
     */
    int getValue();

    /**
     * optional int32 target_player_entindex = 3;
     */
    boolean hasTargetPlayerEntindex();
    /**
     * optional int32 target_player_entindex = 3;
     */
    int getTargetPlayerEntindex();

    /**
     * optional int32 target_entindex = 4;
     */
    boolean hasTargetEntindex();
    /**
     * optional int32 target_entindex = 4;
     */
    int getTargetEntindex();

    /**
     * optional int32 source_player_entindex = 5;
     */
    boolean hasSourcePlayerEntindex();
    /**
     * optional int32 source_player_entindex = 5;
     */
    int getSourcePlayerEntindex();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_OverheadEvent}
   */
  public static final class CDOTAUserMsg_OverheadEvent extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_OverheadEvent)
      CDOTAUserMsg_OverheadEventOrBuilder {
    // Use CDOTAUserMsg_OverheadEvent.newBuilder() to construct.
    private CDOTAUserMsg_OverheadEvent(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_OverheadEvent(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_OverheadEvent defaultInstance;
    public static CDOTAUserMsg_OverheadEvent getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_OverheadEvent getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_OverheadEvent(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              int rawValue = input.readEnum();
              skadistats.clarity.wire.common.proto.DotaUserMessages.DOTA_OVERHEAD_ALERT value = skadistats.clarity.wire.common.proto.DotaUserMessages.DOTA_OVERHEAD_ALERT.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(1, rawValue);
              } else {
                bitField0_ |= 0x00000001;
                messageType_ = value;
              }
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              value_ = input.readInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              targetPlayerEntindex_ = input.readInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              targetEntindex_ = input.readInt32();
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              sourcePlayerEntindex_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_OverheadEvent_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_OverheadEvent_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OverheadEvent.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OverheadEvent.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_OverheadEvent parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_OverheadEvent(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int MESSAGE_TYPE_FIELD_NUMBER = 1;
    private skadistats.clarity.wire.common.proto.DotaUserMessages.DOTA_OVERHEAD_ALERT messageType_;
    /**
     * optional .DOTA_OVERHEAD_ALERT message_type = 1 [default = OVERHEAD_ALERT_GOLD];
     */
    public boolean hasMessageType() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional .DOTA_OVERHEAD_ALERT message_type = 1 [default = OVERHEAD_ALERT_GOLD];
     */
    public skadistats.clarity.wire.common.proto.DotaUserMessages.DOTA_OVERHEAD_ALERT getMessageType() {
      return messageType_;
    }

    public static final int VALUE_FIELD_NUMBER = 2;
    private int value_;
    /**
     * optional int32 value = 2;
     */
    public boolean hasValue() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional int32 value = 2;
     */
    public int getValue() {
      return value_;
    }

    public static final int TARGET_PLAYER_ENTINDEX_FIELD_NUMBER = 3;
    private int targetPlayerEntindex_;
    /**
     * optional int32 target_player_entindex = 3;
     */
    public boolean hasTargetPlayerEntindex() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional int32 target_player_entindex = 3;
     */
    public int getTargetPlayerEntindex() {
      return targetPlayerEntindex_;
    }

    public static final int TARGET_ENTINDEX_FIELD_NUMBER = 4;
    private int targetEntindex_;
    /**
     * optional int32 target_entindex = 4;
     */
    public boolean hasTargetEntindex() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional int32 target_entindex = 4;
     */
    public int getTargetEntindex() {
      return targetEntindex_;
    }

    public static final int SOURCE_PLAYER_ENTINDEX_FIELD_NUMBER = 5;
    private int sourcePlayerEntindex_;
    /**
     * optional int32 source_player_entindex = 5;
     */
    public boolean hasSourcePlayerEntindex() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * optional int32 source_player_entindex = 5;
     */
    public int getSourcePlayerEntindex() {
      return sourcePlayerEntindex_;
    }

    private void initFields() {
      messageType_ = skadistats.clarity.wire.common.proto.DotaUserMessages.DOTA_OVERHEAD_ALERT.OVERHEAD_ALERT_GOLD;
      value_ = 0;
      targetPlayerEntindex_ = 0;
      targetEntindex_ = 0;
      sourcePlayerEntindex_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeEnum(1, messageType_.getNumber());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, value_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeInt32(3, targetPlayerEntindex_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeInt32(4, targetEntindex_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeInt32(5, sourcePlayerEntindex_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(1, messageType_.getNumber());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, value_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, targetPlayerEntindex_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, targetEntindex_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(5, sourcePlayerEntindex_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OverheadEvent parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OverheadEvent parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OverheadEvent parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OverheadEvent parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OverheadEvent parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OverheadEvent parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OverheadEvent parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OverheadEvent parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OverheadEvent parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OverheadEvent parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OverheadEvent prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_OverheadEvent}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_OverheadEvent)
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OverheadEventOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_OverheadEvent_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_OverheadEvent_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OverheadEvent.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OverheadEvent.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OverheadEvent.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        messageType_ = skadistats.clarity.wire.common.proto.DotaUserMessages.DOTA_OVERHEAD_ALERT.OVERHEAD_ALERT_GOLD;
        bitField0_ = (bitField0_ & ~0x00000001);
        value_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        targetPlayerEntindex_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        targetEntindex_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        sourcePlayerEntindex_ = 0;
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_OverheadEvent_descriptor;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OverheadEvent getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OverheadEvent.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OverheadEvent build() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OverheadEvent result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OverheadEvent buildPartial() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OverheadEvent result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OverheadEvent(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.messageType_ = messageType_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.value_ = value_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.targetPlayerEntindex_ = targetPlayerEntindex_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.targetEntindex_ = targetEntindex_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.sourcePlayerEntindex_ = sourcePlayerEntindex_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OverheadEvent) {
          return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OverheadEvent)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OverheadEvent other) {
        if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OverheadEvent.getDefaultInstance()) return this;
        if (other.hasMessageType()) {
          setMessageType(other.getMessageType());
        }
        if (other.hasValue()) {
          setValue(other.getValue());
        }
        if (other.hasTargetPlayerEntindex()) {
          setTargetPlayerEntindex(other.getTargetPlayerEntindex());
        }
        if (other.hasTargetEntindex()) {
          setTargetEntindex(other.getTargetEntindex());
        }
        if (other.hasSourcePlayerEntindex()) {
          setSourcePlayerEntindex(other.getSourcePlayerEntindex());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OverheadEvent parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OverheadEvent) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private skadistats.clarity.wire.common.proto.DotaUserMessages.DOTA_OVERHEAD_ALERT messageType_ = skadistats.clarity.wire.common.proto.DotaUserMessages.DOTA_OVERHEAD_ALERT.OVERHEAD_ALERT_GOLD;
      /**
       * optional .DOTA_OVERHEAD_ALERT message_type = 1 [default = OVERHEAD_ALERT_GOLD];
       */
      public boolean hasMessageType() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional .DOTA_OVERHEAD_ALERT message_type = 1 [default = OVERHEAD_ALERT_GOLD];
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.DOTA_OVERHEAD_ALERT getMessageType() {
        return messageType_;
      }
      /**
       * optional .DOTA_OVERHEAD_ALERT message_type = 1 [default = OVERHEAD_ALERT_GOLD];
       */
      public Builder setMessageType(skadistats.clarity.wire.common.proto.DotaUserMessages.DOTA_OVERHEAD_ALERT value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        messageType_ = value;
        onChanged();
        return this;
      }
      /**
       * optional .DOTA_OVERHEAD_ALERT message_type = 1 [default = OVERHEAD_ALERT_GOLD];
       */
      public Builder clearMessageType() {
        bitField0_ = (bitField0_ & ~0x00000001);
        messageType_ = skadistats.clarity.wire.common.proto.DotaUserMessages.DOTA_OVERHEAD_ALERT.OVERHEAD_ALERT_GOLD;
        onChanged();
        return this;
      }

      private int value_ ;
      /**
       * optional int32 value = 2;
       */
      public boolean hasValue() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional int32 value = 2;
       */
      public int getValue() {
        return value_;
      }
      /**
       * optional int32 value = 2;
       */
      public Builder setValue(int value) {
        bitField0_ |= 0x00000002;
        value_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 value = 2;
       */
      public Builder clearValue() {
        bitField0_ = (bitField0_ & ~0x00000002);
        value_ = 0;
        onChanged();
        return this;
      }

      private int targetPlayerEntindex_ ;
      /**
       * optional int32 target_player_entindex = 3;
       */
      public boolean hasTargetPlayerEntindex() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional int32 target_player_entindex = 3;
       */
      public int getTargetPlayerEntindex() {
        return targetPlayerEntindex_;
      }
      /**
       * optional int32 target_player_entindex = 3;
       */
      public Builder setTargetPlayerEntindex(int value) {
        bitField0_ |= 0x00000004;
        targetPlayerEntindex_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 target_player_entindex = 3;
       */
      public Builder clearTargetPlayerEntindex() {
        bitField0_ = (bitField0_ & ~0x00000004);
        targetPlayerEntindex_ = 0;
        onChanged();
        return this;
      }

      private int targetEntindex_ ;
      /**
       * optional int32 target_entindex = 4;
       */
      public boolean hasTargetEntindex() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional int32 target_entindex = 4;
       */
      public int getTargetEntindex() {
        return targetEntindex_;
      }
      /**
       * optional int32 target_entindex = 4;
       */
      public Builder setTargetEntindex(int value) {
        bitField0_ |= 0x00000008;
        targetEntindex_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 target_entindex = 4;
       */
      public Builder clearTargetEntindex() {
        bitField0_ = (bitField0_ & ~0x00000008);
        targetEntindex_ = 0;
        onChanged();
        return this;
      }

      private int sourcePlayerEntindex_ ;
      /**
       * optional int32 source_player_entindex = 5;
       */
      public boolean hasSourcePlayerEntindex() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * optional int32 source_player_entindex = 5;
       */
      public int getSourcePlayerEntindex() {
        return sourcePlayerEntindex_;
      }
      /**
       * optional int32 source_player_entindex = 5;
       */
      public Builder setSourcePlayerEntindex(int value) {
        bitField0_ |= 0x00000010;
        sourcePlayerEntindex_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 source_player_entindex = 5;
       */
      public Builder clearSourcePlayerEntindex() {
        bitField0_ = (bitField0_ & ~0x00000010);
        sourcePlayerEntindex_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_OverheadEvent)
    }

    static {
      defaultInstance = new CDOTAUserMsg_OverheadEvent(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_OverheadEvent)
  }

  public interface CDOTAUserMsg_WorldLineOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_WorldLine)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional int32 player_id = 1;
     */
    boolean hasPlayerId();
    /**
     * optional int32 player_id = 1;
     */
    int getPlayerId();

    /**
     * optional .CDOTAMsg_WorldLine worldline = 2;
     */
    boolean hasWorldline();
    /**
     * optional .CDOTAMsg_WorldLine worldline = 2;
     */
    skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_WorldLine getWorldline();
    /**
     * optional .CDOTAMsg_WorldLine worldline = 2;
     */
    skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_WorldLineOrBuilder getWorldlineOrBuilder();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_WorldLine}
   */
  public static final class CDOTAUserMsg_WorldLine extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_WorldLine)
      CDOTAUserMsg_WorldLineOrBuilder {
    // Use CDOTAUserMsg_WorldLine.newBuilder() to construct.
    private CDOTAUserMsg_WorldLine(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_WorldLine(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_WorldLine defaultInstance;
    public static CDOTAUserMsg_WorldLine getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_WorldLine getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_WorldLine(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              playerId_ = input.readInt32();
              break;
            }
            case 18: {
              skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_WorldLine.Builder subBuilder = null;
              if (((bitField0_ & 0x00000002) == 0x00000002)) {
                subBuilder = worldline_.toBuilder();
              }
              worldline_ = input.readMessage(skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_WorldLine.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(worldline_);
                worldline_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000002;
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_WorldLine_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_WorldLine_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WorldLine.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WorldLine.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_WorldLine parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_WorldLine(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int PLAYER_ID_FIELD_NUMBER = 1;
    private int playerId_;
    /**
     * optional int32 player_id = 1;
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 player_id = 1;
     */
    public int getPlayerId() {
      return playerId_;
    }

    public static final int WORLDLINE_FIELD_NUMBER = 2;
    private skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_WorldLine worldline_;
    /**
     * optional .CDOTAMsg_WorldLine worldline = 2;
     */
    public boolean hasWorldline() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional .CDOTAMsg_WorldLine worldline = 2;
     */
    public skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_WorldLine getWorldline() {
      return worldline_;
    }
    /**
     * optional .CDOTAMsg_WorldLine worldline = 2;
     */
    public skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_WorldLineOrBuilder getWorldlineOrBuilder() {
      return worldline_;
    }

    private void initFields() {
      playerId_ = 0;
      worldline_ = skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_WorldLine.getDefaultInstance();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(2, worldline_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, worldline_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WorldLine parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WorldLine parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WorldLine parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WorldLine parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WorldLine parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WorldLine parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WorldLine parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WorldLine parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WorldLine parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WorldLine parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WorldLine prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_WorldLine}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_WorldLine)
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WorldLineOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_WorldLine_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_WorldLine_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WorldLine.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WorldLine.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WorldLine.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getWorldlineFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        if (worldlineBuilder_ == null) {
          worldline_ = skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_WorldLine.getDefaultInstance();
        } else {
          worldlineBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_WorldLine_descriptor;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WorldLine getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WorldLine.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WorldLine build() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WorldLine result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WorldLine buildPartial() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WorldLine result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WorldLine(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.playerId_ = playerId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        if (worldlineBuilder_ == null) {
          result.worldline_ = worldline_;
        } else {
          result.worldline_ = worldlineBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WorldLine) {
          return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WorldLine)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WorldLine other) {
        if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WorldLine.getDefaultInstance()) return this;
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        if (other.hasWorldline()) {
          mergeWorldline(other.getWorldline());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WorldLine parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WorldLine) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int playerId_ ;
      /**
       * optional int32 player_id = 1;
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 player_id = 1;
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * optional int32 player_id = 1;
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000001;
        playerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 player_id = 1;
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        onChanged();
        return this;
      }

      private skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_WorldLine worldline_ = skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_WorldLine.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_WorldLine, skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_WorldLine.Builder, skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_WorldLineOrBuilder> worldlineBuilder_;
      /**
       * optional .CDOTAMsg_WorldLine worldline = 2;
       */
      public boolean hasWorldline() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional .CDOTAMsg_WorldLine worldline = 2;
       */
      public skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_WorldLine getWorldline() {
        if (worldlineBuilder_ == null) {
          return worldline_;
        } else {
          return worldlineBuilder_.getMessage();
        }
      }
      /**
       * optional .CDOTAMsg_WorldLine worldline = 2;
       */
      public Builder setWorldline(skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_WorldLine value) {
        if (worldlineBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          worldline_ = value;
          onChanged();
        } else {
          worldlineBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * optional .CDOTAMsg_WorldLine worldline = 2;
       */
      public Builder setWorldline(
          skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_WorldLine.Builder builderForValue) {
        if (worldlineBuilder_ == null) {
          worldline_ = builderForValue.build();
          onChanged();
        } else {
          worldlineBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * optional .CDOTAMsg_WorldLine worldline = 2;
       */
      public Builder mergeWorldline(skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_WorldLine value) {
        if (worldlineBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002) &&
              worldline_ != skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_WorldLine.getDefaultInstance()) {
            worldline_ =
              skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_WorldLine.newBuilder(worldline_).mergeFrom(value).buildPartial();
          } else {
            worldline_ = value;
          }
          onChanged();
        } else {
          worldlineBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * optional .CDOTAMsg_WorldLine worldline = 2;
       */
      public Builder clearWorldline() {
        if (worldlineBuilder_ == null) {
          worldline_ = skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_WorldLine.getDefaultInstance();
          onChanged();
        } else {
          worldlineBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      /**
       * optional .CDOTAMsg_WorldLine worldline = 2;
       */
      public skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_WorldLine.Builder getWorldlineBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getWorldlineFieldBuilder().getBuilder();
      }
      /**
       * optional .CDOTAMsg_WorldLine worldline = 2;
       */
      public skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_WorldLineOrBuilder getWorldlineOrBuilder() {
        if (worldlineBuilder_ != null) {
          return worldlineBuilder_.getMessageOrBuilder();
        } else {
          return worldline_;
        }
      }
      /**
       * optional .CDOTAMsg_WorldLine worldline = 2;
       */
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_WorldLine, skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_WorldLine.Builder, skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_WorldLineOrBuilder> 
          getWorldlineFieldBuilder() {
        if (worldlineBuilder_ == null) {
          worldlineBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_WorldLine, skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_WorldLine.Builder, skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_WorldLineOrBuilder>(
                  getWorldline(),
                  getParentForChildren(),
                  isClean());
          worldline_ = null;
        }
        return worldlineBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_WorldLine)
    }

    static {
      defaultInstance = new CDOTAUserMsg_WorldLine(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_WorldLine)
  }

  public interface CDOTAUserMsg_ChatWheelOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_ChatWheel)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional uint32 chat_message_id = 1;
     */
    boolean hasChatMessageId();
    /**
     * optional uint32 chat_message_id = 1;
     */
    int getChatMessageId();

    /**
     * optional uint32 player_id = 2;
     */
    boolean hasPlayerId();
    /**
     * optional uint32 player_id = 2;
     */
    int getPlayerId();

    /**
     * optional uint32 account_id = 3;
     */
    boolean hasAccountId();
    /**
     * optional uint32 account_id = 3;
     */
    int getAccountId();

    /**
     * optional uint32 param_hero_id = 4;
     */
    boolean hasParamHeroId();
    /**
     * optional uint32 param_hero_id = 4;
     */
    int getParamHeroId();

    /**
     * optional uint32 emoticon_id = 5;
     */
    boolean hasEmoticonId();
    /**
     * optional uint32 emoticon_id = 5;
     */
    int getEmoticonId();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_ChatWheel}
   */
  public static final class CDOTAUserMsg_ChatWheel extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_ChatWheel)
      CDOTAUserMsg_ChatWheelOrBuilder {
    // Use CDOTAUserMsg_ChatWheel.newBuilder() to construct.
    private CDOTAUserMsg_ChatWheel(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_ChatWheel(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_ChatWheel defaultInstance;
    public static CDOTAUserMsg_ChatWheel getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_ChatWheel getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_ChatWheel(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              chatMessageId_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              playerId_ = input.readUInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              accountId_ = input.readUInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              paramHeroId_ = input.readUInt32();
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              emoticonId_ = input.readUInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ChatWheel_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ChatWheel_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ChatWheel.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ChatWheel.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_ChatWheel parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_ChatWheel(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int CHAT_MESSAGE_ID_FIELD_NUMBER = 1;
    private int chatMessageId_;
    /**
     * optional uint32 chat_message_id = 1;
     */
    public boolean hasChatMessageId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional uint32 chat_message_id = 1;
     */
    public int getChatMessageId() {
      return chatMessageId_;
    }

    public static final int PLAYER_ID_FIELD_NUMBER = 2;
    private int playerId_;
    /**
     * optional uint32 player_id = 2;
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional uint32 player_id = 2;
     */
    public int getPlayerId() {
      return playerId_;
    }

    public static final int ACCOUNT_ID_FIELD_NUMBER = 3;
    private int accountId_;
    /**
     * optional uint32 account_id = 3;
     */
    public boolean hasAccountId() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional uint32 account_id = 3;
     */
    public int getAccountId() {
      return accountId_;
    }

    public static final int PARAM_HERO_ID_FIELD_NUMBER = 4;
    private int paramHeroId_;
    /**
     * optional uint32 param_hero_id = 4;
     */
    public boolean hasParamHeroId() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional uint32 param_hero_id = 4;
     */
    public int getParamHeroId() {
      return paramHeroId_;
    }

    public static final int EMOTICON_ID_FIELD_NUMBER = 5;
    private int emoticonId_;
    /**
     * optional uint32 emoticon_id = 5;
     */
    public boolean hasEmoticonId() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * optional uint32 emoticon_id = 5;
     */
    public int getEmoticonId() {
      return emoticonId_;
    }

    private void initFields() {
      chatMessageId_ = 0;
      playerId_ = 0;
      accountId_ = 0;
      paramHeroId_ = 0;
      emoticonId_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, chatMessageId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, playerId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeUInt32(3, accountId_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeUInt32(4, paramHeroId_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeUInt32(5, emoticonId_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, chatMessageId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, playerId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, accountId_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(4, paramHeroId_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(5, emoticonId_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ChatWheel parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ChatWheel parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ChatWheel parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ChatWheel parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ChatWheel parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ChatWheel parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ChatWheel parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ChatWheel parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ChatWheel parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ChatWheel parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ChatWheel prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_ChatWheel}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_ChatWheel)
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ChatWheelOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ChatWheel_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ChatWheel_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ChatWheel.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ChatWheel.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ChatWheel.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        chatMessageId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        accountId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        paramHeroId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        emoticonId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ChatWheel_descriptor;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ChatWheel getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ChatWheel.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ChatWheel build() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ChatWheel result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ChatWheel buildPartial() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ChatWheel result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ChatWheel(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.chatMessageId_ = chatMessageId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.playerId_ = playerId_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.accountId_ = accountId_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.paramHeroId_ = paramHeroId_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.emoticonId_ = emoticonId_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ChatWheel) {
          return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ChatWheel)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ChatWheel other) {
        if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ChatWheel.getDefaultInstance()) return this;
        if (other.hasChatMessageId()) {
          setChatMessageId(other.getChatMessageId());
        }
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        if (other.hasAccountId()) {
          setAccountId(other.getAccountId());
        }
        if (other.hasParamHeroId()) {
          setParamHeroId(other.getParamHeroId());
        }
        if (other.hasEmoticonId()) {
          setEmoticonId(other.getEmoticonId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ChatWheel parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ChatWheel) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int chatMessageId_ ;
      /**
       * optional uint32 chat_message_id = 1;
       */
      public boolean hasChatMessageId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional uint32 chat_message_id = 1;
       */
      public int getChatMessageId() {
        return chatMessageId_;
      }
      /**
       * optional uint32 chat_message_id = 1;
       */
      public Builder setChatMessageId(int value) {
        bitField0_ |= 0x00000001;
        chatMessageId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 chat_message_id = 1;
       */
      public Builder clearChatMessageId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        chatMessageId_ = 0;
        onChanged();
        return this;
      }

      private int playerId_ ;
      /**
       * optional uint32 player_id = 2;
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional uint32 player_id = 2;
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * optional uint32 player_id = 2;
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000002;
        playerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 player_id = 2;
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        playerId_ = 0;
        onChanged();
        return this;
      }

      private int accountId_ ;
      /**
       * optional uint32 account_id = 3;
       */
      public boolean hasAccountId() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional uint32 account_id = 3;
       */
      public int getAccountId() {
        return accountId_;
      }
      /**
       * optional uint32 account_id = 3;
       */
      public Builder setAccountId(int value) {
        bitField0_ |= 0x00000004;
        accountId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 account_id = 3;
       */
      public Builder clearAccountId() {
        bitField0_ = (bitField0_ & ~0x00000004);
        accountId_ = 0;
        onChanged();
        return this;
      }

      private int paramHeroId_ ;
      /**
       * optional uint32 param_hero_id = 4;
       */
      public boolean hasParamHeroId() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional uint32 param_hero_id = 4;
       */
      public int getParamHeroId() {
        return paramHeroId_;
      }
      /**
       * optional uint32 param_hero_id = 4;
       */
      public Builder setParamHeroId(int value) {
        bitField0_ |= 0x00000008;
        paramHeroId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 param_hero_id = 4;
       */
      public Builder clearParamHeroId() {
        bitField0_ = (bitField0_ & ~0x00000008);
        paramHeroId_ = 0;
        onChanged();
        return this;
      }

      private int emoticonId_ ;
      /**
       * optional uint32 emoticon_id = 5;
       */
      public boolean hasEmoticonId() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * optional uint32 emoticon_id = 5;
       */
      public int getEmoticonId() {
        return emoticonId_;
      }
      /**
       * optional uint32 emoticon_id = 5;
       */
      public Builder setEmoticonId(int value) {
        bitField0_ |= 0x00000010;
        emoticonId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 emoticon_id = 5;
       */
      public Builder clearEmoticonId() {
        bitField0_ = (bitField0_ & ~0x00000010);
        emoticonId_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_ChatWheel)
    }

    static {
      defaultInstance = new CDOTAUserMsg_ChatWheel(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_ChatWheel)
  }

  public interface CDOTAUserMsg_GamerulesStateChangedOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_GamerulesStateChanged)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional uint32 state = 1;
     */
    boolean hasState();
    /**
     * optional uint32 state = 1;
     */
    int getState();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_GamerulesStateChanged}
   */
  public static final class CDOTAUserMsg_GamerulesStateChanged extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_GamerulesStateChanged)
      CDOTAUserMsg_GamerulesStateChangedOrBuilder {
    // Use CDOTAUserMsg_GamerulesStateChanged.newBuilder() to construct.
    private CDOTAUserMsg_GamerulesStateChanged(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_GamerulesStateChanged(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_GamerulesStateChanged defaultInstance;
    public static CDOTAUserMsg_GamerulesStateChanged getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_GamerulesStateChanged getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_GamerulesStateChanged(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              state_ = input.readUInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_GamerulesStateChanged_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_GamerulesStateChanged_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GamerulesStateChanged.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GamerulesStateChanged.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_GamerulesStateChanged parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_GamerulesStateChanged(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int STATE_FIELD_NUMBER = 1;
    private int state_;
    /**
     * optional uint32 state = 1;
     */
    public boolean hasState() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional uint32 state = 1;
     */
    public int getState() {
      return state_;
    }

    private void initFields() {
      state_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, state_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, state_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GamerulesStateChanged parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GamerulesStateChanged parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GamerulesStateChanged parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GamerulesStateChanged parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GamerulesStateChanged parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GamerulesStateChanged parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GamerulesStateChanged parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GamerulesStateChanged parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GamerulesStateChanged parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GamerulesStateChanged parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GamerulesStateChanged prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_GamerulesStateChanged}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_GamerulesStateChanged)
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GamerulesStateChangedOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_GamerulesStateChanged_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_GamerulesStateChanged_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GamerulesStateChanged.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GamerulesStateChanged.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GamerulesStateChanged.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        state_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_GamerulesStateChanged_descriptor;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GamerulesStateChanged getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GamerulesStateChanged.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GamerulesStateChanged build() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GamerulesStateChanged result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GamerulesStateChanged buildPartial() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GamerulesStateChanged result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GamerulesStateChanged(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.state_ = state_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GamerulesStateChanged) {
          return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GamerulesStateChanged)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GamerulesStateChanged other) {
        if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GamerulesStateChanged.getDefaultInstance()) return this;
        if (other.hasState()) {
          setState(other.getState());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GamerulesStateChanged parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GamerulesStateChanged) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int state_ ;
      /**
       * optional uint32 state = 1;
       */
      public boolean hasState() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional uint32 state = 1;
       */
      public int getState() {
        return state_;
      }
      /**
       * optional uint32 state = 1;
       */
      public Builder setState(int value) {
        bitField0_ |= 0x00000001;
        state_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 state = 1;
       */
      public Builder clearState() {
        bitField0_ = (bitField0_ & ~0x00000001);
        state_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_GamerulesStateChanged)
    }

    static {
      defaultInstance = new CDOTAUserMsg_GamerulesStateChanged(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_GamerulesStateChanged)
  }

  public interface CDOTAUserMsg_SendStatPopupOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_SendStatPopup)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional int32 player_id = 1;
     */
    boolean hasPlayerId();
    /**
     * optional int32 player_id = 1;
     */
    int getPlayerId();

    /**
     * optional .CDOTAMsg_SendStatPopup statpopup = 2;
     */
    boolean hasStatpopup();
    /**
     * optional .CDOTAMsg_SendStatPopup statpopup = 2;
     */
    skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_SendStatPopup getStatpopup();
    /**
     * optional .CDOTAMsg_SendStatPopup statpopup = 2;
     */
    skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_SendStatPopupOrBuilder getStatpopupOrBuilder();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_SendStatPopup}
   */
  public static final class CDOTAUserMsg_SendStatPopup extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_SendStatPopup)
      CDOTAUserMsg_SendStatPopupOrBuilder {
    // Use CDOTAUserMsg_SendStatPopup.newBuilder() to construct.
    private CDOTAUserMsg_SendStatPopup(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_SendStatPopup(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_SendStatPopup defaultInstance;
    public static CDOTAUserMsg_SendStatPopup getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_SendStatPopup getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_SendStatPopup(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              playerId_ = input.readInt32();
              break;
            }
            case 18: {
              skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_SendStatPopup.Builder subBuilder = null;
              if (((bitField0_ & 0x00000002) == 0x00000002)) {
                subBuilder = statpopup_.toBuilder();
              }
              statpopup_ = input.readMessage(skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_SendStatPopup.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(statpopup_);
                statpopup_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000002;
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_SendStatPopup_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_SendStatPopup_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SendStatPopup.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SendStatPopup.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_SendStatPopup parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_SendStatPopup(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int PLAYER_ID_FIELD_NUMBER = 1;
    private int playerId_;
    /**
     * optional int32 player_id = 1;
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 player_id = 1;
     */
    public int getPlayerId() {
      return playerId_;
    }

    public static final int STATPOPUP_FIELD_NUMBER = 2;
    private skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_SendStatPopup statpopup_;
    /**
     * optional .CDOTAMsg_SendStatPopup statpopup = 2;
     */
    public boolean hasStatpopup() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional .CDOTAMsg_SendStatPopup statpopup = 2;
     */
    public skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_SendStatPopup getStatpopup() {
      return statpopup_;
    }
    /**
     * optional .CDOTAMsg_SendStatPopup statpopup = 2;
     */
    public skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_SendStatPopupOrBuilder getStatpopupOrBuilder() {
      return statpopup_;
    }

    private void initFields() {
      playerId_ = 0;
      statpopup_ = skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_SendStatPopup.getDefaultInstance();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(2, statpopup_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, statpopup_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SendStatPopup parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SendStatPopup parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SendStatPopup parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SendStatPopup parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SendStatPopup parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SendStatPopup parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SendStatPopup parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SendStatPopup parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SendStatPopup parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SendStatPopup parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SendStatPopup prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_SendStatPopup}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_SendStatPopup)
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SendStatPopupOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_SendStatPopup_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_SendStatPopup_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SendStatPopup.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SendStatPopup.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SendStatPopup.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getStatpopupFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        if (statpopupBuilder_ == null) {
          statpopup_ = skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_SendStatPopup.getDefaultInstance();
        } else {
          statpopupBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_SendStatPopup_descriptor;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SendStatPopup getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SendStatPopup.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SendStatPopup build() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SendStatPopup result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SendStatPopup buildPartial() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SendStatPopup result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SendStatPopup(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.playerId_ = playerId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        if (statpopupBuilder_ == null) {
          result.statpopup_ = statpopup_;
        } else {
          result.statpopup_ = statpopupBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SendStatPopup) {
          return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SendStatPopup)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SendStatPopup other) {
        if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SendStatPopup.getDefaultInstance()) return this;
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        if (other.hasStatpopup()) {
          mergeStatpopup(other.getStatpopup());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SendStatPopup parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SendStatPopup) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int playerId_ ;
      /**
       * optional int32 player_id = 1;
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 player_id = 1;
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * optional int32 player_id = 1;
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000001;
        playerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 player_id = 1;
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        onChanged();
        return this;
      }

      private skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_SendStatPopup statpopup_ = skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_SendStatPopup.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_SendStatPopup, skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_SendStatPopup.Builder, skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_SendStatPopupOrBuilder> statpopupBuilder_;
      /**
       * optional .CDOTAMsg_SendStatPopup statpopup = 2;
       */
      public boolean hasStatpopup() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional .CDOTAMsg_SendStatPopup statpopup = 2;
       */
      public skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_SendStatPopup getStatpopup() {
        if (statpopupBuilder_ == null) {
          return statpopup_;
        } else {
          return statpopupBuilder_.getMessage();
        }
      }
      /**
       * optional .CDOTAMsg_SendStatPopup statpopup = 2;
       */
      public Builder setStatpopup(skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_SendStatPopup value) {
        if (statpopupBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          statpopup_ = value;
          onChanged();
        } else {
          statpopupBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * optional .CDOTAMsg_SendStatPopup statpopup = 2;
       */
      public Builder setStatpopup(
          skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_SendStatPopup.Builder builderForValue) {
        if (statpopupBuilder_ == null) {
          statpopup_ = builderForValue.build();
          onChanged();
        } else {
          statpopupBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * optional .CDOTAMsg_SendStatPopup statpopup = 2;
       */
      public Builder mergeStatpopup(skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_SendStatPopup value) {
        if (statpopupBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002) &&
              statpopup_ != skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_SendStatPopup.getDefaultInstance()) {
            statpopup_ =
              skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_SendStatPopup.newBuilder(statpopup_).mergeFrom(value).buildPartial();
          } else {
            statpopup_ = value;
          }
          onChanged();
        } else {
          statpopupBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * optional .CDOTAMsg_SendStatPopup statpopup = 2;
       */
      public Builder clearStatpopup() {
        if (statpopupBuilder_ == null) {
          statpopup_ = skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_SendStatPopup.getDefaultInstance();
          onChanged();
        } else {
          statpopupBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      /**
       * optional .CDOTAMsg_SendStatPopup statpopup = 2;
       */
      public skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_SendStatPopup.Builder getStatpopupBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getStatpopupFieldBuilder().getBuilder();
      }
      /**
       * optional .CDOTAMsg_SendStatPopup statpopup = 2;
       */
      public skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_SendStatPopupOrBuilder getStatpopupOrBuilder() {
        if (statpopupBuilder_ != null) {
          return statpopupBuilder_.getMessageOrBuilder();
        } else {
          return statpopup_;
        }
      }
      /**
       * optional .CDOTAMsg_SendStatPopup statpopup = 2;
       */
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_SendStatPopup, skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_SendStatPopup.Builder, skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_SendStatPopupOrBuilder> 
          getStatpopupFieldBuilder() {
        if (statpopupBuilder_ == null) {
          statpopupBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_SendStatPopup, skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_SendStatPopup.Builder, skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_SendStatPopupOrBuilder>(
                  getStatpopup(),
                  getParentForChildren(),
                  isClean());
          statpopup_ = null;
        }
        return statpopupBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_SendStatPopup)
    }

    static {
      defaultInstance = new CDOTAUserMsg_SendStatPopup(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_SendStatPopup)
  }

  public interface CDOTAUserMsg_DismissAllStatPopupsOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_DismissAllStatPopups)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional .CDOTAMsg_DismissAllStatPopups dismissallmsg = 1;
     */
    boolean hasDismissallmsg();
    /**
     * optional .CDOTAMsg_DismissAllStatPopups dismissallmsg = 1;
     */
    skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_DismissAllStatPopups getDismissallmsg();
    /**
     * optional .CDOTAMsg_DismissAllStatPopups dismissallmsg = 1;
     */
    skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_DismissAllStatPopupsOrBuilder getDismissallmsgOrBuilder();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_DismissAllStatPopups}
   */
  public static final class CDOTAUserMsg_DismissAllStatPopups extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_DismissAllStatPopups)
      CDOTAUserMsg_DismissAllStatPopupsOrBuilder {
    // Use CDOTAUserMsg_DismissAllStatPopups.newBuilder() to construct.
    private CDOTAUserMsg_DismissAllStatPopups(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_DismissAllStatPopups(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_DismissAllStatPopups defaultInstance;
    public static CDOTAUserMsg_DismissAllStatPopups getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_DismissAllStatPopups getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_DismissAllStatPopups(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_DismissAllStatPopups.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) == 0x00000001)) {
                subBuilder = dismissallmsg_.toBuilder();
              }
              dismissallmsg_ = input.readMessage(skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_DismissAllStatPopups.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(dismissallmsg_);
                dismissallmsg_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_DismissAllStatPopups_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_DismissAllStatPopups_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DismissAllStatPopups.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DismissAllStatPopups.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_DismissAllStatPopups parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_DismissAllStatPopups(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int DISMISSALLMSG_FIELD_NUMBER = 1;
    private skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_DismissAllStatPopups dismissallmsg_;
    /**
     * optional .CDOTAMsg_DismissAllStatPopups dismissallmsg = 1;
     */
    public boolean hasDismissallmsg() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional .CDOTAMsg_DismissAllStatPopups dismissallmsg = 1;
     */
    public skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_DismissAllStatPopups getDismissallmsg() {
      return dismissallmsg_;
    }
    /**
     * optional .CDOTAMsg_DismissAllStatPopups dismissallmsg = 1;
     */
    public skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_DismissAllStatPopupsOrBuilder getDismissallmsgOrBuilder() {
      return dismissallmsg_;
    }

    private void initFields() {
      dismissallmsg_ = skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_DismissAllStatPopups.getDefaultInstance();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, dismissallmsg_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, dismissallmsg_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DismissAllStatPopups parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DismissAllStatPopups parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DismissAllStatPopups parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DismissAllStatPopups parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DismissAllStatPopups parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DismissAllStatPopups parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DismissAllStatPopups parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DismissAllStatPopups parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DismissAllStatPopups parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DismissAllStatPopups parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DismissAllStatPopups prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_DismissAllStatPopups}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_DismissAllStatPopups)
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DismissAllStatPopupsOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_DismissAllStatPopups_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_DismissAllStatPopups_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DismissAllStatPopups.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DismissAllStatPopups.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DismissAllStatPopups.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getDismissallmsgFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        if (dismissallmsgBuilder_ == null) {
          dismissallmsg_ = skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_DismissAllStatPopups.getDefaultInstance();
        } else {
          dismissallmsgBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_DismissAllStatPopups_descriptor;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DismissAllStatPopups getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DismissAllStatPopups.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DismissAllStatPopups build() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DismissAllStatPopups result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DismissAllStatPopups buildPartial() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DismissAllStatPopups result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DismissAllStatPopups(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (dismissallmsgBuilder_ == null) {
          result.dismissallmsg_ = dismissallmsg_;
        } else {
          result.dismissallmsg_ = dismissallmsgBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DismissAllStatPopups) {
          return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DismissAllStatPopups)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DismissAllStatPopups other) {
        if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DismissAllStatPopups.getDefaultInstance()) return this;
        if (other.hasDismissallmsg()) {
          mergeDismissallmsg(other.getDismissallmsg());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DismissAllStatPopups parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DismissAllStatPopups) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_DismissAllStatPopups dismissallmsg_ = skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_DismissAllStatPopups.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_DismissAllStatPopups, skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_DismissAllStatPopups.Builder, skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_DismissAllStatPopupsOrBuilder> dismissallmsgBuilder_;
      /**
       * optional .CDOTAMsg_DismissAllStatPopups dismissallmsg = 1;
       */
      public boolean hasDismissallmsg() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional .CDOTAMsg_DismissAllStatPopups dismissallmsg = 1;
       */
      public skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_DismissAllStatPopups getDismissallmsg() {
        if (dismissallmsgBuilder_ == null) {
          return dismissallmsg_;
        } else {
          return dismissallmsgBuilder_.getMessage();
        }
      }
      /**
       * optional .CDOTAMsg_DismissAllStatPopups dismissallmsg = 1;
       */
      public Builder setDismissallmsg(skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_DismissAllStatPopups value) {
        if (dismissallmsgBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          dismissallmsg_ = value;
          onChanged();
        } else {
          dismissallmsgBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * optional .CDOTAMsg_DismissAllStatPopups dismissallmsg = 1;
       */
      public Builder setDismissallmsg(
          skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_DismissAllStatPopups.Builder builderForValue) {
        if (dismissallmsgBuilder_ == null) {
          dismissallmsg_ = builderForValue.build();
          onChanged();
        } else {
          dismissallmsgBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * optional .CDOTAMsg_DismissAllStatPopups dismissallmsg = 1;
       */
      public Builder mergeDismissallmsg(skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_DismissAllStatPopups value) {
        if (dismissallmsgBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001) &&
              dismissallmsg_ != skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_DismissAllStatPopups.getDefaultInstance()) {
            dismissallmsg_ =
              skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_DismissAllStatPopups.newBuilder(dismissallmsg_).mergeFrom(value).buildPartial();
          } else {
            dismissallmsg_ = value;
          }
          onChanged();
        } else {
          dismissallmsgBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * optional .CDOTAMsg_DismissAllStatPopups dismissallmsg = 1;
       */
      public Builder clearDismissallmsg() {
        if (dismissallmsgBuilder_ == null) {
          dismissallmsg_ = skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_DismissAllStatPopups.getDefaultInstance();
          onChanged();
        } else {
          dismissallmsgBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * optional .CDOTAMsg_DismissAllStatPopups dismissallmsg = 1;
       */
      public skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_DismissAllStatPopups.Builder getDismissallmsgBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getDismissallmsgFieldBuilder().getBuilder();
      }
      /**
       * optional .CDOTAMsg_DismissAllStatPopups dismissallmsg = 1;
       */
      public skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_DismissAllStatPopupsOrBuilder getDismissallmsgOrBuilder() {
        if (dismissallmsgBuilder_ != null) {
          return dismissallmsgBuilder_.getMessageOrBuilder();
        } else {
          return dismissallmsg_;
        }
      }
      /**
       * optional .CDOTAMsg_DismissAllStatPopups dismissallmsg = 1;
       */
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_DismissAllStatPopups, skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_DismissAllStatPopups.Builder, skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_DismissAllStatPopupsOrBuilder> 
          getDismissallmsgFieldBuilder() {
        if (dismissallmsgBuilder_ == null) {
          dismissallmsgBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_DismissAllStatPopups, skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_DismissAllStatPopups.Builder, skadistats.clarity.wire.common.proto.DotaCommonMessages.CDOTAMsg_DismissAllStatPopupsOrBuilder>(
                  getDismissallmsg(),
                  getParentForChildren(),
                  isClean());
          dismissallmsg_ = null;
        }
        return dismissallmsgBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_DismissAllStatPopups)
    }

    static {
      defaultInstance = new CDOTAUserMsg_DismissAllStatPopups(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_DismissAllStatPopups)
  }

  public interface CDOTAUserMsg_SendRoshanSpectatorPhaseOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_SendRoshanSpectatorPhase)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional .DOTA_ROSHAN_PHASE phase = 1 [default = k_SRSP_ROSHAN_ALIVE];
     */
    boolean hasPhase();
    /**
     * optional .DOTA_ROSHAN_PHASE phase = 1 [default = k_SRSP_ROSHAN_ALIVE];
     */
    skadistats.clarity.wire.common.proto.DotaUserMessages.DOTA_ROSHAN_PHASE getPhase();

    /**
     * optional int32 phase_start_time = 2;
     */
    boolean hasPhaseStartTime();
    /**
     * optional int32 phase_start_time = 2;
     */
    int getPhaseStartTime();

    /**
     * optional int32 phase_length = 3;
     */
    boolean hasPhaseLength();
    /**
     * optional int32 phase_length = 3;
     */
    int getPhaseLength();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_SendRoshanSpectatorPhase}
   */
  public static final class CDOTAUserMsg_SendRoshanSpectatorPhase extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_SendRoshanSpectatorPhase)
      CDOTAUserMsg_SendRoshanSpectatorPhaseOrBuilder {
    // Use CDOTAUserMsg_SendRoshanSpectatorPhase.newBuilder() to construct.
    private CDOTAUserMsg_SendRoshanSpectatorPhase(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_SendRoshanSpectatorPhase(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_SendRoshanSpectatorPhase defaultInstance;
    public static CDOTAUserMsg_SendRoshanSpectatorPhase getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_SendRoshanSpectatorPhase getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_SendRoshanSpectatorPhase(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              int rawValue = input.readEnum();
              skadistats.clarity.wire.common.proto.DotaUserMessages.DOTA_ROSHAN_PHASE value = skadistats.clarity.wire.common.proto.DotaUserMessages.DOTA_ROSHAN_PHASE.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(1, rawValue);
              } else {
                bitField0_ |= 0x00000001;
                phase_ = value;
              }
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              phaseStartTime_ = input.readInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              phaseLength_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_SendRoshanSpectatorPhase_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_SendRoshanSpectatorPhase_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SendRoshanSpectatorPhase.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SendRoshanSpectatorPhase.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_SendRoshanSpectatorPhase parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_SendRoshanSpectatorPhase(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int PHASE_FIELD_NUMBER = 1;
    private skadistats.clarity.wire.common.proto.DotaUserMessages.DOTA_ROSHAN_PHASE phase_;
    /**
     * optional .DOTA_ROSHAN_PHASE phase = 1 [default = k_SRSP_ROSHAN_ALIVE];
     */
    public boolean hasPhase() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional .DOTA_ROSHAN_PHASE phase = 1 [default = k_SRSP_ROSHAN_ALIVE];
     */
    public skadistats.clarity.wire.common.proto.DotaUserMessages.DOTA_ROSHAN_PHASE getPhase() {
      return phase_;
    }

    public static final int PHASE_START_TIME_FIELD_NUMBER = 2;
    private int phaseStartTime_;
    /**
     * optional int32 phase_start_time = 2;
     */
    public boolean hasPhaseStartTime() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional int32 phase_start_time = 2;
     */
    public int getPhaseStartTime() {
      return phaseStartTime_;
    }

    public static final int PHASE_LENGTH_FIELD_NUMBER = 3;
    private int phaseLength_;
    /**
     * optional int32 phase_length = 3;
     */
    public boolean hasPhaseLength() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional int32 phase_length = 3;
     */
    public int getPhaseLength() {
      return phaseLength_;
    }

    private void initFields() {
      phase_ = skadistats.clarity.wire.common.proto.DotaUserMessages.DOTA_ROSHAN_PHASE.k_SRSP_ROSHAN_ALIVE;
      phaseStartTime_ = 0;
      phaseLength_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeEnum(1, phase_.getNumber());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, phaseStartTime_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeInt32(3, phaseLength_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(1, phase_.getNumber());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, phaseStartTime_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, phaseLength_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SendRoshanSpectatorPhase parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SendRoshanSpectatorPhase parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SendRoshanSpectatorPhase parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SendRoshanSpectatorPhase parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SendRoshanSpectatorPhase parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SendRoshanSpectatorPhase parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SendRoshanSpectatorPhase parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SendRoshanSpectatorPhase parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SendRoshanSpectatorPhase parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SendRoshanSpectatorPhase parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SendRoshanSpectatorPhase prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_SendRoshanSpectatorPhase}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_SendRoshanSpectatorPhase)
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SendRoshanSpectatorPhaseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_SendRoshanSpectatorPhase_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_SendRoshanSpectatorPhase_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SendRoshanSpectatorPhase.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SendRoshanSpectatorPhase.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SendRoshanSpectatorPhase.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        phase_ = skadistats.clarity.wire.common.proto.DotaUserMessages.DOTA_ROSHAN_PHASE.k_SRSP_ROSHAN_ALIVE;
        bitField0_ = (bitField0_ & ~0x00000001);
        phaseStartTime_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        phaseLength_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_SendRoshanSpectatorPhase_descriptor;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SendRoshanSpectatorPhase getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SendRoshanSpectatorPhase.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SendRoshanSpectatorPhase build() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SendRoshanSpectatorPhase result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SendRoshanSpectatorPhase buildPartial() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SendRoshanSpectatorPhase result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SendRoshanSpectatorPhase(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.phase_ = phase_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.phaseStartTime_ = phaseStartTime_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.phaseLength_ = phaseLength_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SendRoshanSpectatorPhase) {
          return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SendRoshanSpectatorPhase)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SendRoshanSpectatorPhase other) {
        if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SendRoshanSpectatorPhase.getDefaultInstance()) return this;
        if (other.hasPhase()) {
          setPhase(other.getPhase());
        }
        if (other.hasPhaseStartTime()) {
          setPhaseStartTime(other.getPhaseStartTime());
        }
        if (other.hasPhaseLength()) {
          setPhaseLength(other.getPhaseLength());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SendRoshanSpectatorPhase parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SendRoshanSpectatorPhase) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private skadistats.clarity.wire.common.proto.DotaUserMessages.DOTA_ROSHAN_PHASE phase_ = skadistats.clarity.wire.common.proto.DotaUserMessages.DOTA_ROSHAN_PHASE.k_SRSP_ROSHAN_ALIVE;
      /**
       * optional .DOTA_ROSHAN_PHASE phase = 1 [default = k_SRSP_ROSHAN_ALIVE];
       */
      public boolean hasPhase() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional .DOTA_ROSHAN_PHASE phase = 1 [default = k_SRSP_ROSHAN_ALIVE];
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.DOTA_ROSHAN_PHASE getPhase() {
        return phase_;
      }
      /**
       * optional .DOTA_ROSHAN_PHASE phase = 1 [default = k_SRSP_ROSHAN_ALIVE];
       */
      public Builder setPhase(skadistats.clarity.wire.common.proto.DotaUserMessages.DOTA_ROSHAN_PHASE value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        phase_ = value;
        onChanged();
        return this;
      }
      /**
       * optional .DOTA_ROSHAN_PHASE phase = 1 [default = k_SRSP_ROSHAN_ALIVE];
       */
      public Builder clearPhase() {
        bitField0_ = (bitField0_ & ~0x00000001);
        phase_ = skadistats.clarity.wire.common.proto.DotaUserMessages.DOTA_ROSHAN_PHASE.k_SRSP_ROSHAN_ALIVE;
        onChanged();
        return this;
      }

      private int phaseStartTime_ ;
      /**
       * optional int32 phase_start_time = 2;
       */
      public boolean hasPhaseStartTime() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional int32 phase_start_time = 2;
       */
      public int getPhaseStartTime() {
        return phaseStartTime_;
      }
      /**
       * optional int32 phase_start_time = 2;
       */
      public Builder setPhaseStartTime(int value) {
        bitField0_ |= 0x00000002;
        phaseStartTime_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 phase_start_time = 2;
       */
      public Builder clearPhaseStartTime() {
        bitField0_ = (bitField0_ & ~0x00000002);
        phaseStartTime_ = 0;
        onChanged();
        return this;
      }

      private int phaseLength_ ;
      /**
       * optional int32 phase_length = 3;
       */
      public boolean hasPhaseLength() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional int32 phase_length = 3;
       */
      public int getPhaseLength() {
        return phaseLength_;
      }
      /**
       * optional int32 phase_length = 3;
       */
      public Builder setPhaseLength(int value) {
        bitField0_ |= 0x00000004;
        phaseLength_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 phase_length = 3;
       */
      public Builder clearPhaseLength() {
        bitField0_ = (bitField0_ & ~0x00000004);
        phaseLength_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_SendRoshanSpectatorPhase)
    }

    static {
      defaultInstance = new CDOTAUserMsg_SendRoshanSpectatorPhase(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_SendRoshanSpectatorPhase)
  }

  public interface CDOTAUserMsg_SendRoshanPopupOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_SendRoshanPopup)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional bool reclaimed = 1;
     */
    boolean hasReclaimed();
    /**
     * optional bool reclaimed = 1;
     */
    boolean getReclaimed();

    /**
     * optional int32 gametime = 2;
     */
    boolean hasGametime();
    /**
     * optional int32 gametime = 2;
     */
    int getGametime();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_SendRoshanPopup}
   */
  public static final class CDOTAUserMsg_SendRoshanPopup extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_SendRoshanPopup)
      CDOTAUserMsg_SendRoshanPopupOrBuilder {
    // Use CDOTAUserMsg_SendRoshanPopup.newBuilder() to construct.
    private CDOTAUserMsg_SendRoshanPopup(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_SendRoshanPopup(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_SendRoshanPopup defaultInstance;
    public static CDOTAUserMsg_SendRoshanPopup getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_SendRoshanPopup getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_SendRoshanPopup(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              reclaimed_ = input.readBool();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              gametime_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_SendRoshanPopup_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_SendRoshanPopup_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SendRoshanPopup.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SendRoshanPopup.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_SendRoshanPopup parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_SendRoshanPopup(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int RECLAIMED_FIELD_NUMBER = 1;
    private boolean reclaimed_;
    /**
     * optional bool reclaimed = 1;
     */
    public boolean hasReclaimed() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional bool reclaimed = 1;
     */
    public boolean getReclaimed() {
      return reclaimed_;
    }

    public static final int GAMETIME_FIELD_NUMBER = 2;
    private int gametime_;
    /**
     * optional int32 gametime = 2;
     */
    public boolean hasGametime() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional int32 gametime = 2;
     */
    public int getGametime() {
      return gametime_;
    }

    private void initFields() {
      reclaimed_ = false;
      gametime_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeBool(1, reclaimed_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, gametime_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(1, reclaimed_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, gametime_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SendRoshanPopup parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SendRoshanPopup parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SendRoshanPopup parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SendRoshanPopup parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SendRoshanPopup parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SendRoshanPopup parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SendRoshanPopup parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SendRoshanPopup parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SendRoshanPopup parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SendRoshanPopup parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SendRoshanPopup prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_SendRoshanPopup}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_SendRoshanPopup)
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SendRoshanPopupOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_SendRoshanPopup_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_SendRoshanPopup_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SendRoshanPopup.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SendRoshanPopup.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SendRoshanPopup.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        reclaimed_ = false;
        bitField0_ = (bitField0_ & ~0x00000001);
        gametime_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_SendRoshanPopup_descriptor;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SendRoshanPopup getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SendRoshanPopup.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SendRoshanPopup build() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SendRoshanPopup result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SendRoshanPopup buildPartial() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SendRoshanPopup result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SendRoshanPopup(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.reclaimed_ = reclaimed_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.gametime_ = gametime_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SendRoshanPopup) {
          return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SendRoshanPopup)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SendRoshanPopup other) {
        if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SendRoshanPopup.getDefaultInstance()) return this;
        if (other.hasReclaimed()) {
          setReclaimed(other.getReclaimed());
        }
        if (other.hasGametime()) {
          setGametime(other.getGametime());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SendRoshanPopup parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SendRoshanPopup) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private boolean reclaimed_ ;
      /**
       * optional bool reclaimed = 1;
       */
      public boolean hasReclaimed() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional bool reclaimed = 1;
       */
      public boolean getReclaimed() {
        return reclaimed_;
      }
      /**
       * optional bool reclaimed = 1;
       */
      public Builder setReclaimed(boolean value) {
        bitField0_ |= 0x00000001;
        reclaimed_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool reclaimed = 1;
       */
      public Builder clearReclaimed() {
        bitField0_ = (bitField0_ & ~0x00000001);
        reclaimed_ = false;
        onChanged();
        return this;
      }

      private int gametime_ ;
      /**
       * optional int32 gametime = 2;
       */
      public boolean hasGametime() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional int32 gametime = 2;
       */
      public int getGametime() {
        return gametime_;
      }
      /**
       * optional int32 gametime = 2;
       */
      public Builder setGametime(int value) {
        bitField0_ |= 0x00000002;
        gametime_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 gametime = 2;
       */
      public Builder clearGametime() {
        bitField0_ = (bitField0_ & ~0x00000002);
        gametime_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_SendRoshanPopup)
    }

    static {
      defaultInstance = new CDOTAUserMsg_SendRoshanPopup(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_SendRoshanPopup)
  }

  public interface CDOTAUserMsg_TE_ProjectileOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_TE_Projectile)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional int32 hSource = 1;
     */
    boolean hasHSource();
    /**
     * optional int32 hSource = 1;
     */
    int getHSource();

    /**
     * optional int32 hTarget = 2;
     */
    boolean hasHTarget();
    /**
     * optional int32 hTarget = 2;
     */
    int getHTarget();

    /**
     * optional int32 moveSpeed = 3;
     */
    boolean hasMoveSpeed();
    /**
     * optional int32 moveSpeed = 3;
     */
    int getMoveSpeed();

    /**
     * optional int32 sourceAttachment = 4;
     */
    boolean hasSourceAttachment();
    /**
     * optional int32 sourceAttachment = 4;
     */
    int getSourceAttachment();

    /**
     * optional int64 particleSystemHandle = 5;
     */
    boolean hasParticleSystemHandle();
    /**
     * optional int64 particleSystemHandle = 5;
     */
    long getParticleSystemHandle();

    /**
     * optional bool dodgeable = 6;
     */
    boolean hasDodgeable();
    /**
     * optional bool dodgeable = 6;
     */
    boolean getDodgeable();

    /**
     * optional bool isAttack = 7;
     */
    boolean hasIsAttack();
    /**
     * optional bool isAttack = 7;
     */
    boolean getIsAttack();

    /**
     * optional bool isEvaded = 8;
     */
    boolean hasIsEvaded();
    /**
     * optional bool isEvaded = 8;
     */
    boolean getIsEvaded();

    /**
     * optional float expireTime = 9;
     */
    boolean hasExpireTime();
    /**
     * optional float expireTime = 9;
     */
    float getExpireTime();

    /**
     * optional float maximpacttime = 10;
     */
    boolean hasMaximpacttime();
    /**
     * optional float maximpacttime = 10;
     */
    float getMaximpacttime();

    /**
     * optional fixed32 colorgemcolor = 11;
     */
    boolean hasColorgemcolor();
    /**
     * optional fixed32 colorgemcolor = 11;
     */
    int getColorgemcolor();

    /**
     * optional int32 launch_tick = 12;
     */
    boolean hasLaunchTick();
    /**
     * optional int32 launch_tick = 12;
     */
    int getLaunchTick();

    /**
     * optional int32 handle = 13;
     */
    boolean hasHandle();
    /**
     * optional int32 handle = 13;
     */
    int getHandle();

    /**
     * optional .CMsgVector vTargetLoc = 14;
     */
    boolean hasVTargetLoc();
    /**
     * optional .CMsgVector vTargetLoc = 14;
     */
    skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector getVTargetLoc();
    /**
     * optional .CMsgVector vTargetLoc = 14;
     */
    skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder getVTargetLocOrBuilder();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_TE_Projectile}
   */
  public static final class CDOTAUserMsg_TE_Projectile extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_TE_Projectile)
      CDOTAUserMsg_TE_ProjectileOrBuilder {
    // Use CDOTAUserMsg_TE_Projectile.newBuilder() to construct.
    private CDOTAUserMsg_TE_Projectile(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_TE_Projectile(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_TE_Projectile defaultInstance;
    public static CDOTAUserMsg_TE_Projectile getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_TE_Projectile getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_TE_Projectile(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              hSource_ = input.readInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              hTarget_ = input.readInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              moveSpeed_ = input.readInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              sourceAttachment_ = input.readInt32();
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              particleSystemHandle_ = input.readInt64();
              break;
            }
            case 48: {
              bitField0_ |= 0x00000020;
              dodgeable_ = input.readBool();
              break;
            }
            case 56: {
              bitField0_ |= 0x00000040;
              isAttack_ = input.readBool();
              break;
            }
            case 64: {
              bitField0_ |= 0x00000080;
              isEvaded_ = input.readBool();
              break;
            }
            case 77: {
              bitField0_ |= 0x00000100;
              expireTime_ = input.readFloat();
              break;
            }
            case 85: {
              bitField0_ |= 0x00000200;
              maximpacttime_ = input.readFloat();
              break;
            }
            case 93: {
              bitField0_ |= 0x00000400;
              colorgemcolor_ = input.readFixed32();
              break;
            }
            case 96: {
              bitField0_ |= 0x00000800;
              launchTick_ = input.readInt32();
              break;
            }
            case 104: {
              bitField0_ |= 0x00001000;
              handle_ = input.readInt32();
              break;
            }
            case 114: {
              skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder subBuilder = null;
              if (((bitField0_ & 0x00002000) == 0x00002000)) {
                subBuilder = vTargetLoc_.toBuilder();
              }
              vTargetLoc_ = input.readMessage(skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(vTargetLoc_);
                vTargetLoc_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00002000;
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_TE_Projectile_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_TE_Projectile_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_Projectile.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_Projectile.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_TE_Projectile parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_TE_Projectile(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int HSOURCE_FIELD_NUMBER = 1;
    private int hSource_;
    /**
     * optional int32 hSource = 1;
     */
    public boolean hasHSource() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 hSource = 1;
     */
    public int getHSource() {
      return hSource_;
    }

    public static final int HTARGET_FIELD_NUMBER = 2;
    private int hTarget_;
    /**
     * optional int32 hTarget = 2;
     */
    public boolean hasHTarget() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional int32 hTarget = 2;
     */
    public int getHTarget() {
      return hTarget_;
    }

    public static final int MOVESPEED_FIELD_NUMBER = 3;
    private int moveSpeed_;
    /**
     * optional int32 moveSpeed = 3;
     */
    public boolean hasMoveSpeed() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional int32 moveSpeed = 3;
     */
    public int getMoveSpeed() {
      return moveSpeed_;
    }

    public static final int SOURCEATTACHMENT_FIELD_NUMBER = 4;
    private int sourceAttachment_;
    /**
     * optional int32 sourceAttachment = 4;
     */
    public boolean hasSourceAttachment() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional int32 sourceAttachment = 4;
     */
    public int getSourceAttachment() {
      return sourceAttachment_;
    }

    public static final int PARTICLESYSTEMHANDLE_FIELD_NUMBER = 5;
    private long particleSystemHandle_;
    /**
     * optional int64 particleSystemHandle = 5;
     */
    public boolean hasParticleSystemHandle() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * optional int64 particleSystemHandle = 5;
     */
    public long getParticleSystemHandle() {
      return particleSystemHandle_;
    }

    public static final int DODGEABLE_FIELD_NUMBER = 6;
    private boolean dodgeable_;
    /**
     * optional bool dodgeable = 6;
     */
    public boolean hasDodgeable() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     * optional bool dodgeable = 6;
     */
    public boolean getDodgeable() {
      return dodgeable_;
    }

    public static final int ISATTACK_FIELD_NUMBER = 7;
    private boolean isAttack_;
    /**
     * optional bool isAttack = 7;
     */
    public boolean hasIsAttack() {
      return ((bitField0_ & 0x00000040) == 0x00000040);
    }
    /**
     * optional bool isAttack = 7;
     */
    public boolean getIsAttack() {
      return isAttack_;
    }

    public static final int ISEVADED_FIELD_NUMBER = 8;
    private boolean isEvaded_;
    /**
     * optional bool isEvaded = 8;
     */
    public boolean hasIsEvaded() {
      return ((bitField0_ & 0x00000080) == 0x00000080);
    }
    /**
     * optional bool isEvaded = 8;
     */
    public boolean getIsEvaded() {
      return isEvaded_;
    }

    public static final int EXPIRETIME_FIELD_NUMBER = 9;
    private float expireTime_;
    /**
     * optional float expireTime = 9;
     */
    public boolean hasExpireTime() {
      return ((bitField0_ & 0x00000100) == 0x00000100);
    }
    /**
     * optional float expireTime = 9;
     */
    public float getExpireTime() {
      return expireTime_;
    }

    public static final int MAXIMPACTTIME_FIELD_NUMBER = 10;
    private float maximpacttime_;
    /**
     * optional float maximpacttime = 10;
     */
    public boolean hasMaximpacttime() {
      return ((bitField0_ & 0x00000200) == 0x00000200);
    }
    /**
     * optional float maximpacttime = 10;
     */
    public float getMaximpacttime() {
      return maximpacttime_;
    }

    public static final int COLORGEMCOLOR_FIELD_NUMBER = 11;
    private int colorgemcolor_;
    /**
     * optional fixed32 colorgemcolor = 11;
     */
    public boolean hasColorgemcolor() {
      return ((bitField0_ & 0x00000400) == 0x00000400);
    }
    /**
     * optional fixed32 colorgemcolor = 11;
     */
    public int getColorgemcolor() {
      return colorgemcolor_;
    }

    public static final int LAUNCH_TICK_FIELD_NUMBER = 12;
    private int launchTick_;
    /**
     * optional int32 launch_tick = 12;
     */
    public boolean hasLaunchTick() {
      return ((bitField0_ & 0x00000800) == 0x00000800);
    }
    /**
     * optional int32 launch_tick = 12;
     */
    public int getLaunchTick() {
      return launchTick_;
    }

    public static final int HANDLE_FIELD_NUMBER = 13;
    private int handle_;
    /**
     * optional int32 handle = 13;
     */
    public boolean hasHandle() {
      return ((bitField0_ & 0x00001000) == 0x00001000);
    }
    /**
     * optional int32 handle = 13;
     */
    public int getHandle() {
      return handle_;
    }

    public static final int VTARGETLOC_FIELD_NUMBER = 14;
    private skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector vTargetLoc_;
    /**
     * optional .CMsgVector vTargetLoc = 14;
     */
    public boolean hasVTargetLoc() {
      return ((bitField0_ & 0x00002000) == 0x00002000);
    }
    /**
     * optional .CMsgVector vTargetLoc = 14;
     */
    public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector getVTargetLoc() {
      return vTargetLoc_;
    }
    /**
     * optional .CMsgVector vTargetLoc = 14;
     */
    public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder getVTargetLocOrBuilder() {
      return vTargetLoc_;
    }

    private void initFields() {
      hSource_ = 0;
      hTarget_ = 0;
      moveSpeed_ = 0;
      sourceAttachment_ = 0;
      particleSystemHandle_ = 0L;
      dodgeable_ = false;
      isAttack_ = false;
      isEvaded_ = false;
      expireTime_ = 0F;
      maximpacttime_ = 0F;
      colorgemcolor_ = 0;
      launchTick_ = 0;
      handle_ = 0;
      vTargetLoc_ = skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.getDefaultInstance();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, hSource_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, hTarget_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeInt32(3, moveSpeed_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeInt32(4, sourceAttachment_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeInt64(5, particleSystemHandle_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeBool(6, dodgeable_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        output.writeBool(7, isAttack_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        output.writeBool(8, isEvaded_);
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        output.writeFloat(9, expireTime_);
      }
      if (((bitField0_ & 0x00000200) == 0x00000200)) {
        output.writeFloat(10, maximpacttime_);
      }
      if (((bitField0_ & 0x00000400) == 0x00000400)) {
        output.writeFixed32(11, colorgemcolor_);
      }
      if (((bitField0_ & 0x00000800) == 0x00000800)) {
        output.writeInt32(12, launchTick_);
      }
      if (((bitField0_ & 0x00001000) == 0x00001000)) {
        output.writeInt32(13, handle_);
      }
      if (((bitField0_ & 0x00002000) == 0x00002000)) {
        output.writeMessage(14, vTargetLoc_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, hSource_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, hTarget_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, moveSpeed_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, sourceAttachment_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(5, particleSystemHandle_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(6, dodgeable_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(7, isAttack_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(8, isEvaded_);
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(9, expireTime_);
      }
      if (((bitField0_ & 0x00000200) == 0x00000200)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(10, maximpacttime_);
      }
      if (((bitField0_ & 0x00000400) == 0x00000400)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFixed32Size(11, colorgemcolor_);
      }
      if (((bitField0_ & 0x00000800) == 0x00000800)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(12, launchTick_);
      }
      if (((bitField0_ & 0x00001000) == 0x00001000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(13, handle_);
      }
      if (((bitField0_ & 0x00002000) == 0x00002000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(14, vTargetLoc_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_Projectile parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_Projectile parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_Projectile parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_Projectile parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_Projectile parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_Projectile parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_Projectile parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_Projectile parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_Projectile parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_Projectile parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_Projectile prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_TE_Projectile}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_TE_Projectile)
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_ProjectileOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_TE_Projectile_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_TE_Projectile_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_Projectile.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_Projectile.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_Projectile.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getVTargetLocFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        hSource_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        hTarget_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        moveSpeed_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        sourceAttachment_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        particleSystemHandle_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000010);
        dodgeable_ = false;
        bitField0_ = (bitField0_ & ~0x00000020);
        isAttack_ = false;
        bitField0_ = (bitField0_ & ~0x00000040);
        isEvaded_ = false;
        bitField0_ = (bitField0_ & ~0x00000080);
        expireTime_ = 0F;
        bitField0_ = (bitField0_ & ~0x00000100);
        maximpacttime_ = 0F;
        bitField0_ = (bitField0_ & ~0x00000200);
        colorgemcolor_ = 0;
        bitField0_ = (bitField0_ & ~0x00000400);
        launchTick_ = 0;
        bitField0_ = (bitField0_ & ~0x00000800);
        handle_ = 0;
        bitField0_ = (bitField0_ & ~0x00001000);
        if (vTargetLocBuilder_ == null) {
          vTargetLoc_ = skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.getDefaultInstance();
        } else {
          vTargetLocBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00002000);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_TE_Projectile_descriptor;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_Projectile getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_Projectile.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_Projectile build() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_Projectile result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_Projectile buildPartial() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_Projectile result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_Projectile(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.hSource_ = hSource_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.hTarget_ = hTarget_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.moveSpeed_ = moveSpeed_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.sourceAttachment_ = sourceAttachment_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.particleSystemHandle_ = particleSystemHandle_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        result.dodgeable_ = dodgeable_;
        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
          to_bitField0_ |= 0x00000040;
        }
        result.isAttack_ = isAttack_;
        if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
          to_bitField0_ |= 0x00000080;
        }
        result.isEvaded_ = isEvaded_;
        if (((from_bitField0_ & 0x00000100) == 0x00000100)) {
          to_bitField0_ |= 0x00000100;
        }
        result.expireTime_ = expireTime_;
        if (((from_bitField0_ & 0x00000200) == 0x00000200)) {
          to_bitField0_ |= 0x00000200;
        }
        result.maximpacttime_ = maximpacttime_;
        if (((from_bitField0_ & 0x00000400) == 0x00000400)) {
          to_bitField0_ |= 0x00000400;
        }
        result.colorgemcolor_ = colorgemcolor_;
        if (((from_bitField0_ & 0x00000800) == 0x00000800)) {
          to_bitField0_ |= 0x00000800;
        }
        result.launchTick_ = launchTick_;
        if (((from_bitField0_ & 0x00001000) == 0x00001000)) {
          to_bitField0_ |= 0x00001000;
        }
        result.handle_ = handle_;
        if (((from_bitField0_ & 0x00002000) == 0x00002000)) {
          to_bitField0_ |= 0x00002000;
        }
        if (vTargetLocBuilder_ == null) {
          result.vTargetLoc_ = vTargetLoc_;
        } else {
          result.vTargetLoc_ = vTargetLocBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_Projectile) {
          return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_Projectile)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_Projectile other) {
        if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_Projectile.getDefaultInstance()) return this;
        if (other.hasHSource()) {
          setHSource(other.getHSource());
        }
        if (other.hasHTarget()) {
          setHTarget(other.getHTarget());
        }
        if (other.hasMoveSpeed()) {
          setMoveSpeed(other.getMoveSpeed());
        }
        if (other.hasSourceAttachment()) {
          setSourceAttachment(other.getSourceAttachment());
        }
        if (other.hasParticleSystemHandle()) {
          setParticleSystemHandle(other.getParticleSystemHandle());
        }
        if (other.hasDodgeable()) {
          setDodgeable(other.getDodgeable());
        }
        if (other.hasIsAttack()) {
          setIsAttack(other.getIsAttack());
        }
        if (other.hasIsEvaded()) {
          setIsEvaded(other.getIsEvaded());
        }
        if (other.hasExpireTime()) {
          setExpireTime(other.getExpireTime());
        }
        if (other.hasMaximpacttime()) {
          setMaximpacttime(other.getMaximpacttime());
        }
        if (other.hasColorgemcolor()) {
          setColorgemcolor(other.getColorgemcolor());
        }
        if (other.hasLaunchTick()) {
          setLaunchTick(other.getLaunchTick());
        }
        if (other.hasHandle()) {
          setHandle(other.getHandle());
        }
        if (other.hasVTargetLoc()) {
          mergeVTargetLoc(other.getVTargetLoc());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_Projectile parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_Projectile) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int hSource_ ;
      /**
       * optional int32 hSource = 1;
       */
      public boolean hasHSource() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 hSource = 1;
       */
      public int getHSource() {
        return hSource_;
      }
      /**
       * optional int32 hSource = 1;
       */
      public Builder setHSource(int value) {
        bitField0_ |= 0x00000001;
        hSource_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 hSource = 1;
       */
      public Builder clearHSource() {
        bitField0_ = (bitField0_ & ~0x00000001);
        hSource_ = 0;
        onChanged();
        return this;
      }

      private int hTarget_ ;
      /**
       * optional int32 hTarget = 2;
       */
      public boolean hasHTarget() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional int32 hTarget = 2;
       */
      public int getHTarget() {
        return hTarget_;
      }
      /**
       * optional int32 hTarget = 2;
       */
      public Builder setHTarget(int value) {
        bitField0_ |= 0x00000002;
        hTarget_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 hTarget = 2;
       */
      public Builder clearHTarget() {
        bitField0_ = (bitField0_ & ~0x00000002);
        hTarget_ = 0;
        onChanged();
        return this;
      }

      private int moveSpeed_ ;
      /**
       * optional int32 moveSpeed = 3;
       */
      public boolean hasMoveSpeed() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional int32 moveSpeed = 3;
       */
      public int getMoveSpeed() {
        return moveSpeed_;
      }
      /**
       * optional int32 moveSpeed = 3;
       */
      public Builder setMoveSpeed(int value) {
        bitField0_ |= 0x00000004;
        moveSpeed_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 moveSpeed = 3;
       */
      public Builder clearMoveSpeed() {
        bitField0_ = (bitField0_ & ~0x00000004);
        moveSpeed_ = 0;
        onChanged();
        return this;
      }

      private int sourceAttachment_ ;
      /**
       * optional int32 sourceAttachment = 4;
       */
      public boolean hasSourceAttachment() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional int32 sourceAttachment = 4;
       */
      public int getSourceAttachment() {
        return sourceAttachment_;
      }
      /**
       * optional int32 sourceAttachment = 4;
       */
      public Builder setSourceAttachment(int value) {
        bitField0_ |= 0x00000008;
        sourceAttachment_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 sourceAttachment = 4;
       */
      public Builder clearSourceAttachment() {
        bitField0_ = (bitField0_ & ~0x00000008);
        sourceAttachment_ = 0;
        onChanged();
        return this;
      }

      private long particleSystemHandle_ ;
      /**
       * optional int64 particleSystemHandle = 5;
       */
      public boolean hasParticleSystemHandle() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * optional int64 particleSystemHandle = 5;
       */
      public long getParticleSystemHandle() {
        return particleSystemHandle_;
      }
      /**
       * optional int64 particleSystemHandle = 5;
       */
      public Builder setParticleSystemHandle(long value) {
        bitField0_ |= 0x00000010;
        particleSystemHandle_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int64 particleSystemHandle = 5;
       */
      public Builder clearParticleSystemHandle() {
        bitField0_ = (bitField0_ & ~0x00000010);
        particleSystemHandle_ = 0L;
        onChanged();
        return this;
      }

      private boolean dodgeable_ ;
      /**
       * optional bool dodgeable = 6;
       */
      public boolean hasDodgeable() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * optional bool dodgeable = 6;
       */
      public boolean getDodgeable() {
        return dodgeable_;
      }
      /**
       * optional bool dodgeable = 6;
       */
      public Builder setDodgeable(boolean value) {
        bitField0_ |= 0x00000020;
        dodgeable_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool dodgeable = 6;
       */
      public Builder clearDodgeable() {
        bitField0_ = (bitField0_ & ~0x00000020);
        dodgeable_ = false;
        onChanged();
        return this;
      }

      private boolean isAttack_ ;
      /**
       * optional bool isAttack = 7;
       */
      public boolean hasIsAttack() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      /**
       * optional bool isAttack = 7;
       */
      public boolean getIsAttack() {
        return isAttack_;
      }
      /**
       * optional bool isAttack = 7;
       */
      public Builder setIsAttack(boolean value) {
        bitField0_ |= 0x00000040;
        isAttack_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool isAttack = 7;
       */
      public Builder clearIsAttack() {
        bitField0_ = (bitField0_ & ~0x00000040);
        isAttack_ = false;
        onChanged();
        return this;
      }

      private boolean isEvaded_ ;
      /**
       * optional bool isEvaded = 8;
       */
      public boolean hasIsEvaded() {
        return ((bitField0_ & 0x00000080) == 0x00000080);
      }
      /**
       * optional bool isEvaded = 8;
       */
      public boolean getIsEvaded() {
        return isEvaded_;
      }
      /**
       * optional bool isEvaded = 8;
       */
      public Builder setIsEvaded(boolean value) {
        bitField0_ |= 0x00000080;
        isEvaded_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool isEvaded = 8;
       */
      public Builder clearIsEvaded() {
        bitField0_ = (bitField0_ & ~0x00000080);
        isEvaded_ = false;
        onChanged();
        return this;
      }

      private float expireTime_ ;
      /**
       * optional float expireTime = 9;
       */
      public boolean hasExpireTime() {
        return ((bitField0_ & 0x00000100) == 0x00000100);
      }
      /**
       * optional float expireTime = 9;
       */
      public float getExpireTime() {
        return expireTime_;
      }
      /**
       * optional float expireTime = 9;
       */
      public Builder setExpireTime(float value) {
        bitField0_ |= 0x00000100;
        expireTime_ = value;
        onChanged();
        return this;
      }
      /**
       * optional float expireTime = 9;
       */
      public Builder clearExpireTime() {
        bitField0_ = (bitField0_ & ~0x00000100);
        expireTime_ = 0F;
        onChanged();
        return this;
      }

      private float maximpacttime_ ;
      /**
       * optional float maximpacttime = 10;
       */
      public boolean hasMaximpacttime() {
        return ((bitField0_ & 0x00000200) == 0x00000200);
      }
      /**
       * optional float maximpacttime = 10;
       */
      public float getMaximpacttime() {
        return maximpacttime_;
      }
      /**
       * optional float maximpacttime = 10;
       */
      public Builder setMaximpacttime(float value) {
        bitField0_ |= 0x00000200;
        maximpacttime_ = value;
        onChanged();
        return this;
      }
      /**
       * optional float maximpacttime = 10;
       */
      public Builder clearMaximpacttime() {
        bitField0_ = (bitField0_ & ~0x00000200);
        maximpacttime_ = 0F;
        onChanged();
        return this;
      }

      private int colorgemcolor_ ;
      /**
       * optional fixed32 colorgemcolor = 11;
       */
      public boolean hasColorgemcolor() {
        return ((bitField0_ & 0x00000400) == 0x00000400);
      }
      /**
       * optional fixed32 colorgemcolor = 11;
       */
      public int getColorgemcolor() {
        return colorgemcolor_;
      }
      /**
       * optional fixed32 colorgemcolor = 11;
       */
      public Builder setColorgemcolor(int value) {
        bitField0_ |= 0x00000400;
        colorgemcolor_ = value;
        onChanged();
        return this;
      }
      /**
       * optional fixed32 colorgemcolor = 11;
       */
      public Builder clearColorgemcolor() {
        bitField0_ = (bitField0_ & ~0x00000400);
        colorgemcolor_ = 0;
        onChanged();
        return this;
      }

      private int launchTick_ ;
      /**
       * optional int32 launch_tick = 12;
       */
      public boolean hasLaunchTick() {
        return ((bitField0_ & 0x00000800) == 0x00000800);
      }
      /**
       * optional int32 launch_tick = 12;
       */
      public int getLaunchTick() {
        return launchTick_;
      }
      /**
       * optional int32 launch_tick = 12;
       */
      public Builder setLaunchTick(int value) {
        bitField0_ |= 0x00000800;
        launchTick_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 launch_tick = 12;
       */
      public Builder clearLaunchTick() {
        bitField0_ = (bitField0_ & ~0x00000800);
        launchTick_ = 0;
        onChanged();
        return this;
      }

      private int handle_ ;
      /**
       * optional int32 handle = 13;
       */
      public boolean hasHandle() {
        return ((bitField0_ & 0x00001000) == 0x00001000);
      }
      /**
       * optional int32 handle = 13;
       */
      public int getHandle() {
        return handle_;
      }
      /**
       * optional int32 handle = 13;
       */
      public Builder setHandle(int value) {
        bitField0_ |= 0x00001000;
        handle_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 handle = 13;
       */
      public Builder clearHandle() {
        bitField0_ = (bitField0_ & ~0x00001000);
        handle_ = 0;
        onChanged();
        return this;
      }

      private skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector vTargetLoc_ = skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder> vTargetLocBuilder_;
      /**
       * optional .CMsgVector vTargetLoc = 14;
       */
      public boolean hasVTargetLoc() {
        return ((bitField0_ & 0x00002000) == 0x00002000);
      }
      /**
       * optional .CMsgVector vTargetLoc = 14;
       */
      public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector getVTargetLoc() {
        if (vTargetLocBuilder_ == null) {
          return vTargetLoc_;
        } else {
          return vTargetLocBuilder_.getMessage();
        }
      }
      /**
       * optional .CMsgVector vTargetLoc = 14;
       */
      public Builder setVTargetLoc(skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector value) {
        if (vTargetLocBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          vTargetLoc_ = value;
          onChanged();
        } else {
          vTargetLocBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00002000;
        return this;
      }
      /**
       * optional .CMsgVector vTargetLoc = 14;
       */
      public Builder setVTargetLoc(
          skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder builderForValue) {
        if (vTargetLocBuilder_ == null) {
          vTargetLoc_ = builderForValue.build();
          onChanged();
        } else {
          vTargetLocBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00002000;
        return this;
      }
      /**
       * optional .CMsgVector vTargetLoc = 14;
       */
      public Builder mergeVTargetLoc(skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector value) {
        if (vTargetLocBuilder_ == null) {
          if (((bitField0_ & 0x00002000) == 0x00002000) &&
              vTargetLoc_ != skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.getDefaultInstance()) {
            vTargetLoc_ =
              skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.newBuilder(vTargetLoc_).mergeFrom(value).buildPartial();
          } else {
            vTargetLoc_ = value;
          }
          onChanged();
        } else {
          vTargetLocBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00002000;
        return this;
      }
      /**
       * optional .CMsgVector vTargetLoc = 14;
       */
      public Builder clearVTargetLoc() {
        if (vTargetLocBuilder_ == null) {
          vTargetLoc_ = skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.getDefaultInstance();
          onChanged();
        } else {
          vTargetLocBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00002000);
        return this;
      }
      /**
       * optional .CMsgVector vTargetLoc = 14;
       */
      public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder getVTargetLocBuilder() {
        bitField0_ |= 0x00002000;
        onChanged();
        return getVTargetLocFieldBuilder().getBuilder();
      }
      /**
       * optional .CMsgVector vTargetLoc = 14;
       */
      public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder getVTargetLocOrBuilder() {
        if (vTargetLocBuilder_ != null) {
          return vTargetLocBuilder_.getMessageOrBuilder();
        } else {
          return vTargetLoc_;
        }
      }
      /**
       * optional .CMsgVector vTargetLoc = 14;
       */
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder> 
          getVTargetLocFieldBuilder() {
        if (vTargetLocBuilder_ == null) {
          vTargetLocBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder>(
                  getVTargetLoc(),
                  getParentForChildren(),
                  isClean());
          vTargetLoc_ = null;
        }
        return vTargetLocBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_TE_Projectile)
    }

    static {
      defaultInstance = new CDOTAUserMsg_TE_Projectile(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_TE_Projectile)
  }

  public interface CDOTAUserMsg_TE_ProjectileLocOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_TE_ProjectileLoc)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional .CMsgVector vSourceLoc = 1;
     */
    boolean hasVSourceLoc();
    /**
     * optional .CMsgVector vSourceLoc = 1;
     */
    skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector getVSourceLoc();
    /**
     * optional .CMsgVector vSourceLoc = 1;
     */
    skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder getVSourceLocOrBuilder();

    /**
     * optional int32 hTarget = 2;
     */
    boolean hasHTarget();
    /**
     * optional int32 hTarget = 2;
     */
    int getHTarget();

    /**
     * optional int32 moveSpeed = 3;
     */
    boolean hasMoveSpeed();
    /**
     * optional int32 moveSpeed = 3;
     */
    int getMoveSpeed();

    /**
     * optional int64 particleSystemHandle = 4;
     */
    boolean hasParticleSystemHandle();
    /**
     * optional int64 particleSystemHandle = 4;
     */
    long getParticleSystemHandle();

    /**
     * optional bool dodgeable = 5;
     */
    boolean hasDodgeable();
    /**
     * optional bool dodgeable = 5;
     */
    boolean getDodgeable();

    /**
     * optional bool isAttack = 6;
     */
    boolean hasIsAttack();
    /**
     * optional bool isAttack = 6;
     */
    boolean getIsAttack();

    /**
     * optional bool isEvaded = 8;
     */
    boolean hasIsEvaded();
    /**
     * optional bool isEvaded = 8;
     */
    boolean getIsEvaded();

    /**
     * optional float expireTime = 9;
     */
    boolean hasExpireTime();
    /**
     * optional float expireTime = 9;
     */
    float getExpireTime();

    /**
     * optional .CMsgVector vTargetLoc = 10;
     */
    boolean hasVTargetLoc();
    /**
     * optional .CMsgVector vTargetLoc = 10;
     */
    skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector getVTargetLoc();
    /**
     * optional .CMsgVector vTargetLoc = 10;
     */
    skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder getVTargetLocOrBuilder();

    /**
     * optional fixed32 colorgemcolor = 11;
     */
    boolean hasColorgemcolor();
    /**
     * optional fixed32 colorgemcolor = 11;
     */
    int getColorgemcolor();

    /**
     * optional int32 launch_tick = 12;
     */
    boolean hasLaunchTick();
    /**
     * optional int32 launch_tick = 12;
     */
    int getLaunchTick();

    /**
     * optional int32 handle = 13;
     */
    boolean hasHandle();
    /**
     * optional int32 handle = 13;
     */
    int getHandle();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_TE_ProjectileLoc}
   */
  public static final class CDOTAUserMsg_TE_ProjectileLoc extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_TE_ProjectileLoc)
      CDOTAUserMsg_TE_ProjectileLocOrBuilder {
    // Use CDOTAUserMsg_TE_ProjectileLoc.newBuilder() to construct.
    private CDOTAUserMsg_TE_ProjectileLoc(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_TE_ProjectileLoc(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_TE_ProjectileLoc defaultInstance;
    public static CDOTAUserMsg_TE_ProjectileLoc getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_TE_ProjectileLoc getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_TE_ProjectileLoc(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) == 0x00000001)) {
                subBuilder = vSourceLoc_.toBuilder();
              }
              vSourceLoc_ = input.readMessage(skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(vSourceLoc_);
                vSourceLoc_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              hTarget_ = input.readInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              moveSpeed_ = input.readInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              particleSystemHandle_ = input.readInt64();
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              dodgeable_ = input.readBool();
              break;
            }
            case 48: {
              bitField0_ |= 0x00000020;
              isAttack_ = input.readBool();
              break;
            }
            case 64: {
              bitField0_ |= 0x00000040;
              isEvaded_ = input.readBool();
              break;
            }
            case 77: {
              bitField0_ |= 0x00000080;
              expireTime_ = input.readFloat();
              break;
            }
            case 82: {
              skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder subBuilder = null;
              if (((bitField0_ & 0x00000100) == 0x00000100)) {
                subBuilder = vTargetLoc_.toBuilder();
              }
              vTargetLoc_ = input.readMessage(skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(vTargetLoc_);
                vTargetLoc_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000100;
              break;
            }
            case 93: {
              bitField0_ |= 0x00000200;
              colorgemcolor_ = input.readFixed32();
              break;
            }
            case 96: {
              bitField0_ |= 0x00000400;
              launchTick_ = input.readInt32();
              break;
            }
            case 104: {
              bitField0_ |= 0x00000800;
              handle_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_TE_ProjectileLoc_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_TE_ProjectileLoc_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_ProjectileLoc.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_ProjectileLoc.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_TE_ProjectileLoc parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_TE_ProjectileLoc(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int VSOURCELOC_FIELD_NUMBER = 1;
    private skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector vSourceLoc_;
    /**
     * optional .CMsgVector vSourceLoc = 1;
     */
    public boolean hasVSourceLoc() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional .CMsgVector vSourceLoc = 1;
     */
    public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector getVSourceLoc() {
      return vSourceLoc_;
    }
    /**
     * optional .CMsgVector vSourceLoc = 1;
     */
    public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder getVSourceLocOrBuilder() {
      return vSourceLoc_;
    }

    public static final int HTARGET_FIELD_NUMBER = 2;
    private int hTarget_;
    /**
     * optional int32 hTarget = 2;
     */
    public boolean hasHTarget() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional int32 hTarget = 2;
     */
    public int getHTarget() {
      return hTarget_;
    }

    public static final int MOVESPEED_FIELD_NUMBER = 3;
    private int moveSpeed_;
    /**
     * optional int32 moveSpeed = 3;
     */
    public boolean hasMoveSpeed() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional int32 moveSpeed = 3;
     */
    public int getMoveSpeed() {
      return moveSpeed_;
    }

    public static final int PARTICLESYSTEMHANDLE_FIELD_NUMBER = 4;
    private long particleSystemHandle_;
    /**
     * optional int64 particleSystemHandle = 4;
     */
    public boolean hasParticleSystemHandle() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional int64 particleSystemHandle = 4;
     */
    public long getParticleSystemHandle() {
      return particleSystemHandle_;
    }

    public static final int DODGEABLE_FIELD_NUMBER = 5;
    private boolean dodgeable_;
    /**
     * optional bool dodgeable = 5;
     */
    public boolean hasDodgeable() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * optional bool dodgeable = 5;
     */
    public boolean getDodgeable() {
      return dodgeable_;
    }

    public static final int ISATTACK_FIELD_NUMBER = 6;
    private boolean isAttack_;
    /**
     * optional bool isAttack = 6;
     */
    public boolean hasIsAttack() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     * optional bool isAttack = 6;
     */
    public boolean getIsAttack() {
      return isAttack_;
    }

    public static final int ISEVADED_FIELD_NUMBER = 8;
    private boolean isEvaded_;
    /**
     * optional bool isEvaded = 8;
     */
    public boolean hasIsEvaded() {
      return ((bitField0_ & 0x00000040) == 0x00000040);
    }
    /**
     * optional bool isEvaded = 8;
     */
    public boolean getIsEvaded() {
      return isEvaded_;
    }

    public static final int EXPIRETIME_FIELD_NUMBER = 9;
    private float expireTime_;
    /**
     * optional float expireTime = 9;
     */
    public boolean hasExpireTime() {
      return ((bitField0_ & 0x00000080) == 0x00000080);
    }
    /**
     * optional float expireTime = 9;
     */
    public float getExpireTime() {
      return expireTime_;
    }

    public static final int VTARGETLOC_FIELD_NUMBER = 10;
    private skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector vTargetLoc_;
    /**
     * optional .CMsgVector vTargetLoc = 10;
     */
    public boolean hasVTargetLoc() {
      return ((bitField0_ & 0x00000100) == 0x00000100);
    }
    /**
     * optional .CMsgVector vTargetLoc = 10;
     */
    public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector getVTargetLoc() {
      return vTargetLoc_;
    }
    /**
     * optional .CMsgVector vTargetLoc = 10;
     */
    public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder getVTargetLocOrBuilder() {
      return vTargetLoc_;
    }

    public static final int COLORGEMCOLOR_FIELD_NUMBER = 11;
    private int colorgemcolor_;
    /**
     * optional fixed32 colorgemcolor = 11;
     */
    public boolean hasColorgemcolor() {
      return ((bitField0_ & 0x00000200) == 0x00000200);
    }
    /**
     * optional fixed32 colorgemcolor = 11;
     */
    public int getColorgemcolor() {
      return colorgemcolor_;
    }

    public static final int LAUNCH_TICK_FIELD_NUMBER = 12;
    private int launchTick_;
    /**
     * optional int32 launch_tick = 12;
     */
    public boolean hasLaunchTick() {
      return ((bitField0_ & 0x00000400) == 0x00000400);
    }
    /**
     * optional int32 launch_tick = 12;
     */
    public int getLaunchTick() {
      return launchTick_;
    }

    public static final int HANDLE_FIELD_NUMBER = 13;
    private int handle_;
    /**
     * optional int32 handle = 13;
     */
    public boolean hasHandle() {
      return ((bitField0_ & 0x00000800) == 0x00000800);
    }
    /**
     * optional int32 handle = 13;
     */
    public int getHandle() {
      return handle_;
    }

    private void initFields() {
      vSourceLoc_ = skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.getDefaultInstance();
      hTarget_ = 0;
      moveSpeed_ = 0;
      particleSystemHandle_ = 0L;
      dodgeable_ = false;
      isAttack_ = false;
      isEvaded_ = false;
      expireTime_ = 0F;
      vTargetLoc_ = skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.getDefaultInstance();
      colorgemcolor_ = 0;
      launchTick_ = 0;
      handle_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, vSourceLoc_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, hTarget_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeInt32(3, moveSpeed_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeInt64(4, particleSystemHandle_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeBool(5, dodgeable_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeBool(6, isAttack_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        output.writeBool(8, isEvaded_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        output.writeFloat(9, expireTime_);
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        output.writeMessage(10, vTargetLoc_);
      }
      if (((bitField0_ & 0x00000200) == 0x00000200)) {
        output.writeFixed32(11, colorgemcolor_);
      }
      if (((bitField0_ & 0x00000400) == 0x00000400)) {
        output.writeInt32(12, launchTick_);
      }
      if (((bitField0_ & 0x00000800) == 0x00000800)) {
        output.writeInt32(13, handle_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, vSourceLoc_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, hTarget_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, moveSpeed_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(4, particleSystemHandle_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(5, dodgeable_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(6, isAttack_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(8, isEvaded_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(9, expireTime_);
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(10, vTargetLoc_);
      }
      if (((bitField0_ & 0x00000200) == 0x00000200)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFixed32Size(11, colorgemcolor_);
      }
      if (((bitField0_ & 0x00000400) == 0x00000400)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(12, launchTick_);
      }
      if (((bitField0_ & 0x00000800) == 0x00000800)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(13, handle_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_ProjectileLoc parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_ProjectileLoc parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_ProjectileLoc parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_ProjectileLoc parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_ProjectileLoc parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_ProjectileLoc parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_ProjectileLoc parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_ProjectileLoc parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_ProjectileLoc parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_ProjectileLoc parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_ProjectileLoc prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_TE_ProjectileLoc}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_TE_ProjectileLoc)
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_ProjectileLocOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_TE_ProjectileLoc_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_TE_ProjectileLoc_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_ProjectileLoc.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_ProjectileLoc.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_ProjectileLoc.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getVSourceLocFieldBuilder();
          getVTargetLocFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        if (vSourceLocBuilder_ == null) {
          vSourceLoc_ = skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.getDefaultInstance();
        } else {
          vSourceLocBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        hTarget_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        moveSpeed_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        particleSystemHandle_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000008);
        dodgeable_ = false;
        bitField0_ = (bitField0_ & ~0x00000010);
        isAttack_ = false;
        bitField0_ = (bitField0_ & ~0x00000020);
        isEvaded_ = false;
        bitField0_ = (bitField0_ & ~0x00000040);
        expireTime_ = 0F;
        bitField0_ = (bitField0_ & ~0x00000080);
        if (vTargetLocBuilder_ == null) {
          vTargetLoc_ = skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.getDefaultInstance();
        } else {
          vTargetLocBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000100);
        colorgemcolor_ = 0;
        bitField0_ = (bitField0_ & ~0x00000200);
        launchTick_ = 0;
        bitField0_ = (bitField0_ & ~0x00000400);
        handle_ = 0;
        bitField0_ = (bitField0_ & ~0x00000800);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_TE_ProjectileLoc_descriptor;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_ProjectileLoc getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_ProjectileLoc.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_ProjectileLoc build() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_ProjectileLoc result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_ProjectileLoc buildPartial() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_ProjectileLoc result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_ProjectileLoc(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (vSourceLocBuilder_ == null) {
          result.vSourceLoc_ = vSourceLoc_;
        } else {
          result.vSourceLoc_ = vSourceLocBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.hTarget_ = hTarget_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.moveSpeed_ = moveSpeed_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.particleSystemHandle_ = particleSystemHandle_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.dodgeable_ = dodgeable_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        result.isAttack_ = isAttack_;
        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
          to_bitField0_ |= 0x00000040;
        }
        result.isEvaded_ = isEvaded_;
        if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
          to_bitField0_ |= 0x00000080;
        }
        result.expireTime_ = expireTime_;
        if (((from_bitField0_ & 0x00000100) == 0x00000100)) {
          to_bitField0_ |= 0x00000100;
        }
        if (vTargetLocBuilder_ == null) {
          result.vTargetLoc_ = vTargetLoc_;
        } else {
          result.vTargetLoc_ = vTargetLocBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000200) == 0x00000200)) {
          to_bitField0_ |= 0x00000200;
        }
        result.colorgemcolor_ = colorgemcolor_;
        if (((from_bitField0_ & 0x00000400) == 0x00000400)) {
          to_bitField0_ |= 0x00000400;
        }
        result.launchTick_ = launchTick_;
        if (((from_bitField0_ & 0x00000800) == 0x00000800)) {
          to_bitField0_ |= 0x00000800;
        }
        result.handle_ = handle_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_ProjectileLoc) {
          return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_ProjectileLoc)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_ProjectileLoc other) {
        if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_ProjectileLoc.getDefaultInstance()) return this;
        if (other.hasVSourceLoc()) {
          mergeVSourceLoc(other.getVSourceLoc());
        }
        if (other.hasHTarget()) {
          setHTarget(other.getHTarget());
        }
        if (other.hasMoveSpeed()) {
          setMoveSpeed(other.getMoveSpeed());
        }
        if (other.hasParticleSystemHandle()) {
          setParticleSystemHandle(other.getParticleSystemHandle());
        }
        if (other.hasDodgeable()) {
          setDodgeable(other.getDodgeable());
        }
        if (other.hasIsAttack()) {
          setIsAttack(other.getIsAttack());
        }
        if (other.hasIsEvaded()) {
          setIsEvaded(other.getIsEvaded());
        }
        if (other.hasExpireTime()) {
          setExpireTime(other.getExpireTime());
        }
        if (other.hasVTargetLoc()) {
          mergeVTargetLoc(other.getVTargetLoc());
        }
        if (other.hasColorgemcolor()) {
          setColorgemcolor(other.getColorgemcolor());
        }
        if (other.hasLaunchTick()) {
          setLaunchTick(other.getLaunchTick());
        }
        if (other.hasHandle()) {
          setHandle(other.getHandle());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_ProjectileLoc parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_ProjectileLoc) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector vSourceLoc_ = skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder> vSourceLocBuilder_;
      /**
       * optional .CMsgVector vSourceLoc = 1;
       */
      public boolean hasVSourceLoc() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional .CMsgVector vSourceLoc = 1;
       */
      public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector getVSourceLoc() {
        if (vSourceLocBuilder_ == null) {
          return vSourceLoc_;
        } else {
          return vSourceLocBuilder_.getMessage();
        }
      }
      /**
       * optional .CMsgVector vSourceLoc = 1;
       */
      public Builder setVSourceLoc(skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector value) {
        if (vSourceLocBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          vSourceLoc_ = value;
          onChanged();
        } else {
          vSourceLocBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * optional .CMsgVector vSourceLoc = 1;
       */
      public Builder setVSourceLoc(
          skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder builderForValue) {
        if (vSourceLocBuilder_ == null) {
          vSourceLoc_ = builderForValue.build();
          onChanged();
        } else {
          vSourceLocBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * optional .CMsgVector vSourceLoc = 1;
       */
      public Builder mergeVSourceLoc(skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector value) {
        if (vSourceLocBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001) &&
              vSourceLoc_ != skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.getDefaultInstance()) {
            vSourceLoc_ =
              skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.newBuilder(vSourceLoc_).mergeFrom(value).buildPartial();
          } else {
            vSourceLoc_ = value;
          }
          onChanged();
        } else {
          vSourceLocBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * optional .CMsgVector vSourceLoc = 1;
       */
      public Builder clearVSourceLoc() {
        if (vSourceLocBuilder_ == null) {
          vSourceLoc_ = skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.getDefaultInstance();
          onChanged();
        } else {
          vSourceLocBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * optional .CMsgVector vSourceLoc = 1;
       */
      public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder getVSourceLocBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getVSourceLocFieldBuilder().getBuilder();
      }
      /**
       * optional .CMsgVector vSourceLoc = 1;
       */
      public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder getVSourceLocOrBuilder() {
        if (vSourceLocBuilder_ != null) {
          return vSourceLocBuilder_.getMessageOrBuilder();
        } else {
          return vSourceLoc_;
        }
      }
      /**
       * optional .CMsgVector vSourceLoc = 1;
       */
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder> 
          getVSourceLocFieldBuilder() {
        if (vSourceLocBuilder_ == null) {
          vSourceLocBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder>(
                  getVSourceLoc(),
                  getParentForChildren(),
                  isClean());
          vSourceLoc_ = null;
        }
        return vSourceLocBuilder_;
      }

      private int hTarget_ ;
      /**
       * optional int32 hTarget = 2;
       */
      public boolean hasHTarget() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional int32 hTarget = 2;
       */
      public int getHTarget() {
        return hTarget_;
      }
      /**
       * optional int32 hTarget = 2;
       */
      public Builder setHTarget(int value) {
        bitField0_ |= 0x00000002;
        hTarget_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 hTarget = 2;
       */
      public Builder clearHTarget() {
        bitField0_ = (bitField0_ & ~0x00000002);
        hTarget_ = 0;
        onChanged();
        return this;
      }

      private int moveSpeed_ ;
      /**
       * optional int32 moveSpeed = 3;
       */
      public boolean hasMoveSpeed() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional int32 moveSpeed = 3;
       */
      public int getMoveSpeed() {
        return moveSpeed_;
      }
      /**
       * optional int32 moveSpeed = 3;
       */
      public Builder setMoveSpeed(int value) {
        bitField0_ |= 0x00000004;
        moveSpeed_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 moveSpeed = 3;
       */
      public Builder clearMoveSpeed() {
        bitField0_ = (bitField0_ & ~0x00000004);
        moveSpeed_ = 0;
        onChanged();
        return this;
      }

      private long particleSystemHandle_ ;
      /**
       * optional int64 particleSystemHandle = 4;
       */
      public boolean hasParticleSystemHandle() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional int64 particleSystemHandle = 4;
       */
      public long getParticleSystemHandle() {
        return particleSystemHandle_;
      }
      /**
       * optional int64 particleSystemHandle = 4;
       */
      public Builder setParticleSystemHandle(long value) {
        bitField0_ |= 0x00000008;
        particleSystemHandle_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int64 particleSystemHandle = 4;
       */
      public Builder clearParticleSystemHandle() {
        bitField0_ = (bitField0_ & ~0x00000008);
        particleSystemHandle_ = 0L;
        onChanged();
        return this;
      }

      private boolean dodgeable_ ;
      /**
       * optional bool dodgeable = 5;
       */
      public boolean hasDodgeable() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * optional bool dodgeable = 5;
       */
      public boolean getDodgeable() {
        return dodgeable_;
      }
      /**
       * optional bool dodgeable = 5;
       */
      public Builder setDodgeable(boolean value) {
        bitField0_ |= 0x00000010;
        dodgeable_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool dodgeable = 5;
       */
      public Builder clearDodgeable() {
        bitField0_ = (bitField0_ & ~0x00000010);
        dodgeable_ = false;
        onChanged();
        return this;
      }

      private boolean isAttack_ ;
      /**
       * optional bool isAttack = 6;
       */
      public boolean hasIsAttack() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * optional bool isAttack = 6;
       */
      public boolean getIsAttack() {
        return isAttack_;
      }
      /**
       * optional bool isAttack = 6;
       */
      public Builder setIsAttack(boolean value) {
        bitField0_ |= 0x00000020;
        isAttack_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool isAttack = 6;
       */
      public Builder clearIsAttack() {
        bitField0_ = (bitField0_ & ~0x00000020);
        isAttack_ = false;
        onChanged();
        return this;
      }

      private boolean isEvaded_ ;
      /**
       * optional bool isEvaded = 8;
       */
      public boolean hasIsEvaded() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      /**
       * optional bool isEvaded = 8;
       */
      public boolean getIsEvaded() {
        return isEvaded_;
      }
      /**
       * optional bool isEvaded = 8;
       */
      public Builder setIsEvaded(boolean value) {
        bitField0_ |= 0x00000040;
        isEvaded_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool isEvaded = 8;
       */
      public Builder clearIsEvaded() {
        bitField0_ = (bitField0_ & ~0x00000040);
        isEvaded_ = false;
        onChanged();
        return this;
      }

      private float expireTime_ ;
      /**
       * optional float expireTime = 9;
       */
      public boolean hasExpireTime() {
        return ((bitField0_ & 0x00000080) == 0x00000080);
      }
      /**
       * optional float expireTime = 9;
       */
      public float getExpireTime() {
        return expireTime_;
      }
      /**
       * optional float expireTime = 9;
       */
      public Builder setExpireTime(float value) {
        bitField0_ |= 0x00000080;
        expireTime_ = value;
        onChanged();
        return this;
      }
      /**
       * optional float expireTime = 9;
       */
      public Builder clearExpireTime() {
        bitField0_ = (bitField0_ & ~0x00000080);
        expireTime_ = 0F;
        onChanged();
        return this;
      }

      private skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector vTargetLoc_ = skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder> vTargetLocBuilder_;
      /**
       * optional .CMsgVector vTargetLoc = 10;
       */
      public boolean hasVTargetLoc() {
        return ((bitField0_ & 0x00000100) == 0x00000100);
      }
      /**
       * optional .CMsgVector vTargetLoc = 10;
       */
      public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector getVTargetLoc() {
        if (vTargetLocBuilder_ == null) {
          return vTargetLoc_;
        } else {
          return vTargetLocBuilder_.getMessage();
        }
      }
      /**
       * optional .CMsgVector vTargetLoc = 10;
       */
      public Builder setVTargetLoc(skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector value) {
        if (vTargetLocBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          vTargetLoc_ = value;
          onChanged();
        } else {
          vTargetLocBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000100;
        return this;
      }
      /**
       * optional .CMsgVector vTargetLoc = 10;
       */
      public Builder setVTargetLoc(
          skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder builderForValue) {
        if (vTargetLocBuilder_ == null) {
          vTargetLoc_ = builderForValue.build();
          onChanged();
        } else {
          vTargetLocBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000100;
        return this;
      }
      /**
       * optional .CMsgVector vTargetLoc = 10;
       */
      public Builder mergeVTargetLoc(skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector value) {
        if (vTargetLocBuilder_ == null) {
          if (((bitField0_ & 0x00000100) == 0x00000100) &&
              vTargetLoc_ != skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.getDefaultInstance()) {
            vTargetLoc_ =
              skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.newBuilder(vTargetLoc_).mergeFrom(value).buildPartial();
          } else {
            vTargetLoc_ = value;
          }
          onChanged();
        } else {
          vTargetLocBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000100;
        return this;
      }
      /**
       * optional .CMsgVector vTargetLoc = 10;
       */
      public Builder clearVTargetLoc() {
        if (vTargetLocBuilder_ == null) {
          vTargetLoc_ = skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.getDefaultInstance();
          onChanged();
        } else {
          vTargetLocBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000100);
        return this;
      }
      /**
       * optional .CMsgVector vTargetLoc = 10;
       */
      public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder getVTargetLocBuilder() {
        bitField0_ |= 0x00000100;
        onChanged();
        return getVTargetLocFieldBuilder().getBuilder();
      }
      /**
       * optional .CMsgVector vTargetLoc = 10;
       */
      public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder getVTargetLocOrBuilder() {
        if (vTargetLocBuilder_ != null) {
          return vTargetLocBuilder_.getMessageOrBuilder();
        } else {
          return vTargetLoc_;
        }
      }
      /**
       * optional .CMsgVector vTargetLoc = 10;
       */
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder> 
          getVTargetLocFieldBuilder() {
        if (vTargetLocBuilder_ == null) {
          vTargetLocBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder>(
                  getVTargetLoc(),
                  getParentForChildren(),
                  isClean());
          vTargetLoc_ = null;
        }
        return vTargetLocBuilder_;
      }

      private int colorgemcolor_ ;
      /**
       * optional fixed32 colorgemcolor = 11;
       */
      public boolean hasColorgemcolor() {
        return ((bitField0_ & 0x00000200) == 0x00000200);
      }
      /**
       * optional fixed32 colorgemcolor = 11;
       */
      public int getColorgemcolor() {
        return colorgemcolor_;
      }
      /**
       * optional fixed32 colorgemcolor = 11;
       */
      public Builder setColorgemcolor(int value) {
        bitField0_ |= 0x00000200;
        colorgemcolor_ = value;
        onChanged();
        return this;
      }
      /**
       * optional fixed32 colorgemcolor = 11;
       */
      public Builder clearColorgemcolor() {
        bitField0_ = (bitField0_ & ~0x00000200);
        colorgemcolor_ = 0;
        onChanged();
        return this;
      }

      private int launchTick_ ;
      /**
       * optional int32 launch_tick = 12;
       */
      public boolean hasLaunchTick() {
        return ((bitField0_ & 0x00000400) == 0x00000400);
      }
      /**
       * optional int32 launch_tick = 12;
       */
      public int getLaunchTick() {
        return launchTick_;
      }
      /**
       * optional int32 launch_tick = 12;
       */
      public Builder setLaunchTick(int value) {
        bitField0_ |= 0x00000400;
        launchTick_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 launch_tick = 12;
       */
      public Builder clearLaunchTick() {
        bitField0_ = (bitField0_ & ~0x00000400);
        launchTick_ = 0;
        onChanged();
        return this;
      }

      private int handle_ ;
      /**
       * optional int32 handle = 13;
       */
      public boolean hasHandle() {
        return ((bitField0_ & 0x00000800) == 0x00000800);
      }
      /**
       * optional int32 handle = 13;
       */
      public int getHandle() {
        return handle_;
      }
      /**
       * optional int32 handle = 13;
       */
      public Builder setHandle(int value) {
        bitField0_ |= 0x00000800;
        handle_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 handle = 13;
       */
      public Builder clearHandle() {
        bitField0_ = (bitField0_ & ~0x00000800);
        handle_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_TE_ProjectileLoc)
    }

    static {
      defaultInstance = new CDOTAUserMsg_TE_ProjectileLoc(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_TE_ProjectileLoc)
  }

  public interface CDOTAUserMsg_TE_DestroyProjectileOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_TE_DestroyProjectile)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional int32 handle = 1;
     */
    boolean hasHandle();
    /**
     * optional int32 handle = 1;
     */
    int getHandle();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_TE_DestroyProjectile}
   */
  public static final class CDOTAUserMsg_TE_DestroyProjectile extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_TE_DestroyProjectile)
      CDOTAUserMsg_TE_DestroyProjectileOrBuilder {
    // Use CDOTAUserMsg_TE_DestroyProjectile.newBuilder() to construct.
    private CDOTAUserMsg_TE_DestroyProjectile(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_TE_DestroyProjectile(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_TE_DestroyProjectile defaultInstance;
    public static CDOTAUserMsg_TE_DestroyProjectile getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_TE_DestroyProjectile getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_TE_DestroyProjectile(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              handle_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_TE_DestroyProjectile_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_TE_DestroyProjectile_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_DestroyProjectile.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_DestroyProjectile.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_TE_DestroyProjectile parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_TE_DestroyProjectile(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int HANDLE_FIELD_NUMBER = 1;
    private int handle_;
    /**
     * optional int32 handle = 1;
     */
    public boolean hasHandle() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 handle = 1;
     */
    public int getHandle() {
      return handle_;
    }

    private void initFields() {
      handle_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, handle_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, handle_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_DestroyProjectile parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_DestroyProjectile parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_DestroyProjectile parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_DestroyProjectile parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_DestroyProjectile parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_DestroyProjectile parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_DestroyProjectile parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_DestroyProjectile parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_DestroyProjectile parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_DestroyProjectile parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_DestroyProjectile prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_TE_DestroyProjectile}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_TE_DestroyProjectile)
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_DestroyProjectileOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_TE_DestroyProjectile_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_TE_DestroyProjectile_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_DestroyProjectile.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_DestroyProjectile.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_DestroyProjectile.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        handle_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_TE_DestroyProjectile_descriptor;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_DestroyProjectile getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_DestroyProjectile.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_DestroyProjectile build() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_DestroyProjectile result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_DestroyProjectile buildPartial() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_DestroyProjectile result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_DestroyProjectile(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.handle_ = handle_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_DestroyProjectile) {
          return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_DestroyProjectile)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_DestroyProjectile other) {
        if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_DestroyProjectile.getDefaultInstance()) return this;
        if (other.hasHandle()) {
          setHandle(other.getHandle());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_DestroyProjectile parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_DestroyProjectile) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int handle_ ;
      /**
       * optional int32 handle = 1;
       */
      public boolean hasHandle() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 handle = 1;
       */
      public int getHandle() {
        return handle_;
      }
      /**
       * optional int32 handle = 1;
       */
      public Builder setHandle(int value) {
        bitField0_ |= 0x00000001;
        handle_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 handle = 1;
       */
      public Builder clearHandle() {
        bitField0_ = (bitField0_ & ~0x00000001);
        handle_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_TE_DestroyProjectile)
    }

    static {
      defaultInstance = new CDOTAUserMsg_TE_DestroyProjectile(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_TE_DestroyProjectile)
  }

  public interface CDOTAUserMsg_TE_DotaBloodImpactOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_TE_DotaBloodImpact)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional int32 entity = 1;
     */
    boolean hasEntity();
    /**
     * optional int32 entity = 1;
     */
    int getEntity();

    /**
     * optional float scale = 2;
     */
    boolean hasScale();
    /**
     * optional float scale = 2;
     */
    float getScale();

    /**
     * optional float xnormal = 3;
     */
    boolean hasXnormal();
    /**
     * optional float xnormal = 3;
     */
    float getXnormal();

    /**
     * optional float ynormal = 4;
     */
    boolean hasYnormal();
    /**
     * optional float ynormal = 4;
     */
    float getYnormal();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_TE_DotaBloodImpact}
   */
  public static final class CDOTAUserMsg_TE_DotaBloodImpact extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_TE_DotaBloodImpact)
      CDOTAUserMsg_TE_DotaBloodImpactOrBuilder {
    // Use CDOTAUserMsg_TE_DotaBloodImpact.newBuilder() to construct.
    private CDOTAUserMsg_TE_DotaBloodImpact(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_TE_DotaBloodImpact(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_TE_DotaBloodImpact defaultInstance;
    public static CDOTAUserMsg_TE_DotaBloodImpact getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_TE_DotaBloodImpact getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_TE_DotaBloodImpact(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              entity_ = input.readInt32();
              break;
            }
            case 21: {
              bitField0_ |= 0x00000002;
              scale_ = input.readFloat();
              break;
            }
            case 29: {
              bitField0_ |= 0x00000004;
              xnormal_ = input.readFloat();
              break;
            }
            case 37: {
              bitField0_ |= 0x00000008;
              ynormal_ = input.readFloat();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_TE_DotaBloodImpact_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_TE_DotaBloodImpact_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_DotaBloodImpact.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_DotaBloodImpact.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_TE_DotaBloodImpact parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_TE_DotaBloodImpact(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int ENTITY_FIELD_NUMBER = 1;
    private int entity_;
    /**
     * optional int32 entity = 1;
     */
    public boolean hasEntity() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 entity = 1;
     */
    public int getEntity() {
      return entity_;
    }

    public static final int SCALE_FIELD_NUMBER = 2;
    private float scale_;
    /**
     * optional float scale = 2;
     */
    public boolean hasScale() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional float scale = 2;
     */
    public float getScale() {
      return scale_;
    }

    public static final int XNORMAL_FIELD_NUMBER = 3;
    private float xnormal_;
    /**
     * optional float xnormal = 3;
     */
    public boolean hasXnormal() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional float xnormal = 3;
     */
    public float getXnormal() {
      return xnormal_;
    }

    public static final int YNORMAL_FIELD_NUMBER = 4;
    private float ynormal_;
    /**
     * optional float ynormal = 4;
     */
    public boolean hasYnormal() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional float ynormal = 4;
     */
    public float getYnormal() {
      return ynormal_;
    }

    private void initFields() {
      entity_ = 0;
      scale_ = 0F;
      xnormal_ = 0F;
      ynormal_ = 0F;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, entity_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeFloat(2, scale_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeFloat(3, xnormal_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeFloat(4, ynormal_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, entity_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(2, scale_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(3, xnormal_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(4, ynormal_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_DotaBloodImpact parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_DotaBloodImpact parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_DotaBloodImpact parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_DotaBloodImpact parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_DotaBloodImpact parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_DotaBloodImpact parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_DotaBloodImpact parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_DotaBloodImpact parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_DotaBloodImpact parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_DotaBloodImpact parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_DotaBloodImpact prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_TE_DotaBloodImpact}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_TE_DotaBloodImpact)
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_DotaBloodImpactOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_TE_DotaBloodImpact_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_TE_DotaBloodImpact_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_DotaBloodImpact.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_DotaBloodImpact.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_DotaBloodImpact.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        entity_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        scale_ = 0F;
        bitField0_ = (bitField0_ & ~0x00000002);
        xnormal_ = 0F;
        bitField0_ = (bitField0_ & ~0x00000004);
        ynormal_ = 0F;
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_TE_DotaBloodImpact_descriptor;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_DotaBloodImpact getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_DotaBloodImpact.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_DotaBloodImpact build() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_DotaBloodImpact result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_DotaBloodImpact buildPartial() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_DotaBloodImpact result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_DotaBloodImpact(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.entity_ = entity_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.scale_ = scale_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.xnormal_ = xnormal_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.ynormal_ = ynormal_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_DotaBloodImpact) {
          return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_DotaBloodImpact)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_DotaBloodImpact other) {
        if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_DotaBloodImpact.getDefaultInstance()) return this;
        if (other.hasEntity()) {
          setEntity(other.getEntity());
        }
        if (other.hasScale()) {
          setScale(other.getScale());
        }
        if (other.hasXnormal()) {
          setXnormal(other.getXnormal());
        }
        if (other.hasYnormal()) {
          setYnormal(other.getYnormal());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_DotaBloodImpact parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_DotaBloodImpact) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int entity_ ;
      /**
       * optional int32 entity = 1;
       */
      public boolean hasEntity() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 entity = 1;
       */
      public int getEntity() {
        return entity_;
      }
      /**
       * optional int32 entity = 1;
       */
      public Builder setEntity(int value) {
        bitField0_ |= 0x00000001;
        entity_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 entity = 1;
       */
      public Builder clearEntity() {
        bitField0_ = (bitField0_ & ~0x00000001);
        entity_ = 0;
        onChanged();
        return this;
      }

      private float scale_ ;
      /**
       * optional float scale = 2;
       */
      public boolean hasScale() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional float scale = 2;
       */
      public float getScale() {
        return scale_;
      }
      /**
       * optional float scale = 2;
       */
      public Builder setScale(float value) {
        bitField0_ |= 0x00000002;
        scale_ = value;
        onChanged();
        return this;
      }
      /**
       * optional float scale = 2;
       */
      public Builder clearScale() {
        bitField0_ = (bitField0_ & ~0x00000002);
        scale_ = 0F;
        onChanged();
        return this;
      }

      private float xnormal_ ;
      /**
       * optional float xnormal = 3;
       */
      public boolean hasXnormal() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional float xnormal = 3;
       */
      public float getXnormal() {
        return xnormal_;
      }
      /**
       * optional float xnormal = 3;
       */
      public Builder setXnormal(float value) {
        bitField0_ |= 0x00000004;
        xnormal_ = value;
        onChanged();
        return this;
      }
      /**
       * optional float xnormal = 3;
       */
      public Builder clearXnormal() {
        bitField0_ = (bitField0_ & ~0x00000004);
        xnormal_ = 0F;
        onChanged();
        return this;
      }

      private float ynormal_ ;
      /**
       * optional float ynormal = 4;
       */
      public boolean hasYnormal() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional float ynormal = 4;
       */
      public float getYnormal() {
        return ynormal_;
      }
      /**
       * optional float ynormal = 4;
       */
      public Builder setYnormal(float value) {
        bitField0_ |= 0x00000008;
        ynormal_ = value;
        onChanged();
        return this;
      }
      /**
       * optional float ynormal = 4;
       */
      public Builder clearYnormal() {
        bitField0_ = (bitField0_ & ~0x00000008);
        ynormal_ = 0F;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_TE_DotaBloodImpact)
    }

    static {
      defaultInstance = new CDOTAUserMsg_TE_DotaBloodImpact(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_TE_DotaBloodImpact)
  }

  public interface CDOTAUserMsg_AbilityPingOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_AbilityPing)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional uint32 player_id = 1;
     */
    boolean hasPlayerId();
    /**
     * optional uint32 player_id = 1;
     */
    int getPlayerId();

    /**
     * optional uint32 ability_id = 2;
     */
    boolean hasAbilityId();
    /**
     * optional uint32 ability_id = 2;
     */
    int getAbilityId();

    /**
     * optional .DOTA_ABILITY_PING_TYPE type = 3 [default = ABILITY_PING_READY];
     */
    boolean hasType();
    /**
     * optional .DOTA_ABILITY_PING_TYPE type = 3 [default = ABILITY_PING_READY];
     */
    skadistats.clarity.wire.common.proto.DotaUserMessages.DOTA_ABILITY_PING_TYPE getType();

    /**
     * optional uint32 cooldown_seconds = 4;
     */
    boolean hasCooldownSeconds();
    /**
     * optional uint32 cooldown_seconds = 4;
     */
    int getCooldownSeconds();

    /**
     * optional uint32 level = 5;
     */
    boolean hasLevel();
    /**
     * optional uint32 level = 5;
     */
    int getLevel();

    /**
     * optional bool passive = 6;
     */
    boolean hasPassive();
    /**
     * optional bool passive = 6;
     */
    boolean getPassive();

    /**
     * optional uint32 mana_needed = 7;
     */
    boolean hasManaNeeded();
    /**
     * optional uint32 mana_needed = 7;
     */
    int getManaNeeded();

    /**
     * optional uint32 entity_id = 8;
     */
    boolean hasEntityId();
    /**
     * optional uint32 entity_id = 8;
     */
    int getEntityId();

    /**
     * optional int32 primary_charges = 9;
     */
    boolean hasPrimaryCharges();
    /**
     * optional int32 primary_charges = 9;
     */
    int getPrimaryCharges();

    /**
     * optional int32 secondary_charges = 10;
     */
    boolean hasSecondaryCharges();
    /**
     * optional int32 secondary_charges = 10;
     */
    int getSecondaryCharges();

    /**
     * optional uint32 caster_id = 11;
     */
    boolean hasCasterId();
    /**
     * optional uint32 caster_id = 11;
     */
    int getCasterId();

    /**
     * optional bool ctrl_held = 12;
     */
    boolean hasCtrlHeld();
    /**
     * optional bool ctrl_held = 12;
     */
    boolean getCtrlHeld();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_AbilityPing}
   */
  public static final class CDOTAUserMsg_AbilityPing extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_AbilityPing)
      CDOTAUserMsg_AbilityPingOrBuilder {
    // Use CDOTAUserMsg_AbilityPing.newBuilder() to construct.
    private CDOTAUserMsg_AbilityPing(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_AbilityPing(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_AbilityPing defaultInstance;
    public static CDOTAUserMsg_AbilityPing getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_AbilityPing getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_AbilityPing(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              playerId_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              abilityId_ = input.readUInt32();
              break;
            }
            case 24: {
              int rawValue = input.readEnum();
              skadistats.clarity.wire.common.proto.DotaUserMessages.DOTA_ABILITY_PING_TYPE value = skadistats.clarity.wire.common.proto.DotaUserMessages.DOTA_ABILITY_PING_TYPE.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(3, rawValue);
              } else {
                bitField0_ |= 0x00000004;
                type_ = value;
              }
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              cooldownSeconds_ = input.readUInt32();
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              level_ = input.readUInt32();
              break;
            }
            case 48: {
              bitField0_ |= 0x00000020;
              passive_ = input.readBool();
              break;
            }
            case 56: {
              bitField0_ |= 0x00000040;
              manaNeeded_ = input.readUInt32();
              break;
            }
            case 64: {
              bitField0_ |= 0x00000080;
              entityId_ = input.readUInt32();
              break;
            }
            case 72: {
              bitField0_ |= 0x00000100;
              primaryCharges_ = input.readInt32();
              break;
            }
            case 80: {
              bitField0_ |= 0x00000200;
              secondaryCharges_ = input.readInt32();
              break;
            }
            case 88: {
              bitField0_ |= 0x00000400;
              casterId_ = input.readUInt32();
              break;
            }
            case 96: {
              bitField0_ |= 0x00000800;
              ctrlHeld_ = input.readBool();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_AbilityPing_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_AbilityPing_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AbilityPing.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AbilityPing.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_AbilityPing parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_AbilityPing(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int PLAYER_ID_FIELD_NUMBER = 1;
    private int playerId_;
    /**
     * optional uint32 player_id = 1;
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional uint32 player_id = 1;
     */
    public int getPlayerId() {
      return playerId_;
    }

    public static final int ABILITY_ID_FIELD_NUMBER = 2;
    private int abilityId_;
    /**
     * optional uint32 ability_id = 2;
     */
    public boolean hasAbilityId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional uint32 ability_id = 2;
     */
    public int getAbilityId() {
      return abilityId_;
    }

    public static final int TYPE_FIELD_NUMBER = 3;
    private skadistats.clarity.wire.common.proto.DotaUserMessages.DOTA_ABILITY_PING_TYPE type_;
    /**
     * optional .DOTA_ABILITY_PING_TYPE type = 3 [default = ABILITY_PING_READY];
     */
    public boolean hasType() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional .DOTA_ABILITY_PING_TYPE type = 3 [default = ABILITY_PING_READY];
     */
    public skadistats.clarity.wire.common.proto.DotaUserMessages.DOTA_ABILITY_PING_TYPE getType() {
      return type_;
    }

    public static final int COOLDOWN_SECONDS_FIELD_NUMBER = 4;
    private int cooldownSeconds_;
    /**
     * optional uint32 cooldown_seconds = 4;
     */
    public boolean hasCooldownSeconds() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional uint32 cooldown_seconds = 4;
     */
    public int getCooldownSeconds() {
      return cooldownSeconds_;
    }

    public static final int LEVEL_FIELD_NUMBER = 5;
    private int level_;
    /**
     * optional uint32 level = 5;
     */
    public boolean hasLevel() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * optional uint32 level = 5;
     */
    public int getLevel() {
      return level_;
    }

    public static final int PASSIVE_FIELD_NUMBER = 6;
    private boolean passive_;
    /**
     * optional bool passive = 6;
     */
    public boolean hasPassive() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     * optional bool passive = 6;
     */
    public boolean getPassive() {
      return passive_;
    }

    public static final int MANA_NEEDED_FIELD_NUMBER = 7;
    private int manaNeeded_;
    /**
     * optional uint32 mana_needed = 7;
     */
    public boolean hasManaNeeded() {
      return ((bitField0_ & 0x00000040) == 0x00000040);
    }
    /**
     * optional uint32 mana_needed = 7;
     */
    public int getManaNeeded() {
      return manaNeeded_;
    }

    public static final int ENTITY_ID_FIELD_NUMBER = 8;
    private int entityId_;
    /**
     * optional uint32 entity_id = 8;
     */
    public boolean hasEntityId() {
      return ((bitField0_ & 0x00000080) == 0x00000080);
    }
    /**
     * optional uint32 entity_id = 8;
     */
    public int getEntityId() {
      return entityId_;
    }

    public static final int PRIMARY_CHARGES_FIELD_NUMBER = 9;
    private int primaryCharges_;
    /**
     * optional int32 primary_charges = 9;
     */
    public boolean hasPrimaryCharges() {
      return ((bitField0_ & 0x00000100) == 0x00000100);
    }
    /**
     * optional int32 primary_charges = 9;
     */
    public int getPrimaryCharges() {
      return primaryCharges_;
    }

    public static final int SECONDARY_CHARGES_FIELD_NUMBER = 10;
    private int secondaryCharges_;
    /**
     * optional int32 secondary_charges = 10;
     */
    public boolean hasSecondaryCharges() {
      return ((bitField0_ & 0x00000200) == 0x00000200);
    }
    /**
     * optional int32 secondary_charges = 10;
     */
    public int getSecondaryCharges() {
      return secondaryCharges_;
    }

    public static final int CASTER_ID_FIELD_NUMBER = 11;
    private int casterId_;
    /**
     * optional uint32 caster_id = 11;
     */
    public boolean hasCasterId() {
      return ((bitField0_ & 0x00000400) == 0x00000400);
    }
    /**
     * optional uint32 caster_id = 11;
     */
    public int getCasterId() {
      return casterId_;
    }

    public static final int CTRL_HELD_FIELD_NUMBER = 12;
    private boolean ctrlHeld_;
    /**
     * optional bool ctrl_held = 12;
     */
    public boolean hasCtrlHeld() {
      return ((bitField0_ & 0x00000800) == 0x00000800);
    }
    /**
     * optional bool ctrl_held = 12;
     */
    public boolean getCtrlHeld() {
      return ctrlHeld_;
    }

    private void initFields() {
      playerId_ = 0;
      abilityId_ = 0;
      type_ = skadistats.clarity.wire.common.proto.DotaUserMessages.DOTA_ABILITY_PING_TYPE.ABILITY_PING_READY;
      cooldownSeconds_ = 0;
      level_ = 0;
      passive_ = false;
      manaNeeded_ = 0;
      entityId_ = 0;
      primaryCharges_ = 0;
      secondaryCharges_ = 0;
      casterId_ = 0;
      ctrlHeld_ = false;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, abilityId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeEnum(3, type_.getNumber());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeUInt32(4, cooldownSeconds_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeUInt32(5, level_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeBool(6, passive_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        output.writeUInt32(7, manaNeeded_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        output.writeUInt32(8, entityId_);
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        output.writeInt32(9, primaryCharges_);
      }
      if (((bitField0_ & 0x00000200) == 0x00000200)) {
        output.writeInt32(10, secondaryCharges_);
      }
      if (((bitField0_ & 0x00000400) == 0x00000400)) {
        output.writeUInt32(11, casterId_);
      }
      if (((bitField0_ & 0x00000800) == 0x00000800)) {
        output.writeBool(12, ctrlHeld_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, abilityId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, type_.getNumber());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(4, cooldownSeconds_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(5, level_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(6, passive_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(7, manaNeeded_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(8, entityId_);
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(9, primaryCharges_);
      }
      if (((bitField0_ & 0x00000200) == 0x00000200)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(10, secondaryCharges_);
      }
      if (((bitField0_ & 0x00000400) == 0x00000400)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(11, casterId_);
      }
      if (((bitField0_ & 0x00000800) == 0x00000800)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(12, ctrlHeld_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AbilityPing parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AbilityPing parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AbilityPing parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AbilityPing parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AbilityPing parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AbilityPing parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AbilityPing parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AbilityPing parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AbilityPing parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AbilityPing parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AbilityPing prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_AbilityPing}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_AbilityPing)
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AbilityPingOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_AbilityPing_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_AbilityPing_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AbilityPing.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AbilityPing.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AbilityPing.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        abilityId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        type_ = skadistats.clarity.wire.common.proto.DotaUserMessages.DOTA_ABILITY_PING_TYPE.ABILITY_PING_READY;
        bitField0_ = (bitField0_ & ~0x00000004);
        cooldownSeconds_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        level_ = 0;
        bitField0_ = (bitField0_ & ~0x00000010);
        passive_ = false;
        bitField0_ = (bitField0_ & ~0x00000020);
        manaNeeded_ = 0;
        bitField0_ = (bitField0_ & ~0x00000040);
        entityId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000080);
        primaryCharges_ = 0;
        bitField0_ = (bitField0_ & ~0x00000100);
        secondaryCharges_ = 0;
        bitField0_ = (bitField0_ & ~0x00000200);
        casterId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000400);
        ctrlHeld_ = false;
        bitField0_ = (bitField0_ & ~0x00000800);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_AbilityPing_descriptor;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AbilityPing getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AbilityPing.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AbilityPing build() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AbilityPing result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AbilityPing buildPartial() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AbilityPing result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AbilityPing(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.playerId_ = playerId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.abilityId_ = abilityId_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.type_ = type_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.cooldownSeconds_ = cooldownSeconds_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.level_ = level_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        result.passive_ = passive_;
        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
          to_bitField0_ |= 0x00000040;
        }
        result.manaNeeded_ = manaNeeded_;
        if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
          to_bitField0_ |= 0x00000080;
        }
        result.entityId_ = entityId_;
        if (((from_bitField0_ & 0x00000100) == 0x00000100)) {
          to_bitField0_ |= 0x00000100;
        }
        result.primaryCharges_ = primaryCharges_;
        if (((from_bitField0_ & 0x00000200) == 0x00000200)) {
          to_bitField0_ |= 0x00000200;
        }
        result.secondaryCharges_ = secondaryCharges_;
        if (((from_bitField0_ & 0x00000400) == 0x00000400)) {
          to_bitField0_ |= 0x00000400;
        }
        result.casterId_ = casterId_;
        if (((from_bitField0_ & 0x00000800) == 0x00000800)) {
          to_bitField0_ |= 0x00000800;
        }
        result.ctrlHeld_ = ctrlHeld_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AbilityPing) {
          return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AbilityPing)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AbilityPing other) {
        if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AbilityPing.getDefaultInstance()) return this;
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        if (other.hasAbilityId()) {
          setAbilityId(other.getAbilityId());
        }
        if (other.hasType()) {
          setType(other.getType());
        }
        if (other.hasCooldownSeconds()) {
          setCooldownSeconds(other.getCooldownSeconds());
        }
        if (other.hasLevel()) {
          setLevel(other.getLevel());
        }
        if (other.hasPassive()) {
          setPassive(other.getPassive());
        }
        if (other.hasManaNeeded()) {
          setManaNeeded(other.getManaNeeded());
        }
        if (other.hasEntityId()) {
          setEntityId(other.getEntityId());
        }
        if (other.hasPrimaryCharges()) {
          setPrimaryCharges(other.getPrimaryCharges());
        }
        if (other.hasSecondaryCharges()) {
          setSecondaryCharges(other.getSecondaryCharges());
        }
        if (other.hasCasterId()) {
          setCasterId(other.getCasterId());
        }
        if (other.hasCtrlHeld()) {
          setCtrlHeld(other.getCtrlHeld());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AbilityPing parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AbilityPing) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int playerId_ ;
      /**
       * optional uint32 player_id = 1;
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional uint32 player_id = 1;
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * optional uint32 player_id = 1;
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000001;
        playerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 player_id = 1;
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        onChanged();
        return this;
      }

      private int abilityId_ ;
      /**
       * optional uint32 ability_id = 2;
       */
      public boolean hasAbilityId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional uint32 ability_id = 2;
       */
      public int getAbilityId() {
        return abilityId_;
      }
      /**
       * optional uint32 ability_id = 2;
       */
      public Builder setAbilityId(int value) {
        bitField0_ |= 0x00000002;
        abilityId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 ability_id = 2;
       */
      public Builder clearAbilityId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        abilityId_ = 0;
        onChanged();
        return this;
      }

      private skadistats.clarity.wire.common.proto.DotaUserMessages.DOTA_ABILITY_PING_TYPE type_ = skadistats.clarity.wire.common.proto.DotaUserMessages.DOTA_ABILITY_PING_TYPE.ABILITY_PING_READY;
      /**
       * optional .DOTA_ABILITY_PING_TYPE type = 3 [default = ABILITY_PING_READY];
       */
      public boolean hasType() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional .DOTA_ABILITY_PING_TYPE type = 3 [default = ABILITY_PING_READY];
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.DOTA_ABILITY_PING_TYPE getType() {
        return type_;
      }
      /**
       * optional .DOTA_ABILITY_PING_TYPE type = 3 [default = ABILITY_PING_READY];
       */
      public Builder setType(skadistats.clarity.wire.common.proto.DotaUserMessages.DOTA_ABILITY_PING_TYPE value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        type_ = value;
        onChanged();
        return this;
      }
      /**
       * optional .DOTA_ABILITY_PING_TYPE type = 3 [default = ABILITY_PING_READY];
       */
      public Builder clearType() {
        bitField0_ = (bitField0_ & ~0x00000004);
        type_ = skadistats.clarity.wire.common.proto.DotaUserMessages.DOTA_ABILITY_PING_TYPE.ABILITY_PING_READY;
        onChanged();
        return this;
      }

      private int cooldownSeconds_ ;
      /**
       * optional uint32 cooldown_seconds = 4;
       */
      public boolean hasCooldownSeconds() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional uint32 cooldown_seconds = 4;
       */
      public int getCooldownSeconds() {
        return cooldownSeconds_;
      }
      /**
       * optional uint32 cooldown_seconds = 4;
       */
      public Builder setCooldownSeconds(int value) {
        bitField0_ |= 0x00000008;
        cooldownSeconds_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 cooldown_seconds = 4;
       */
      public Builder clearCooldownSeconds() {
        bitField0_ = (bitField0_ & ~0x00000008);
        cooldownSeconds_ = 0;
        onChanged();
        return this;
      }

      private int level_ ;
      /**
       * optional uint32 level = 5;
       */
      public boolean hasLevel() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * optional uint32 level = 5;
       */
      public int getLevel() {
        return level_;
      }
      /**
       * optional uint32 level = 5;
       */
      public Builder setLevel(int value) {
        bitField0_ |= 0x00000010;
        level_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 level = 5;
       */
      public Builder clearLevel() {
        bitField0_ = (bitField0_ & ~0x00000010);
        level_ = 0;
        onChanged();
        return this;
      }

      private boolean passive_ ;
      /**
       * optional bool passive = 6;
       */
      public boolean hasPassive() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * optional bool passive = 6;
       */
      public boolean getPassive() {
        return passive_;
      }
      /**
       * optional bool passive = 6;
       */
      public Builder setPassive(boolean value) {
        bitField0_ |= 0x00000020;
        passive_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool passive = 6;
       */
      public Builder clearPassive() {
        bitField0_ = (bitField0_ & ~0x00000020);
        passive_ = false;
        onChanged();
        return this;
      }

      private int manaNeeded_ ;
      /**
       * optional uint32 mana_needed = 7;
       */
      public boolean hasManaNeeded() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      /**
       * optional uint32 mana_needed = 7;
       */
      public int getManaNeeded() {
        return manaNeeded_;
      }
      /**
       * optional uint32 mana_needed = 7;
       */
      public Builder setManaNeeded(int value) {
        bitField0_ |= 0x00000040;
        manaNeeded_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 mana_needed = 7;
       */
      public Builder clearManaNeeded() {
        bitField0_ = (bitField0_ & ~0x00000040);
        manaNeeded_ = 0;
        onChanged();
        return this;
      }

      private int entityId_ ;
      /**
       * optional uint32 entity_id = 8;
       */
      public boolean hasEntityId() {
        return ((bitField0_ & 0x00000080) == 0x00000080);
      }
      /**
       * optional uint32 entity_id = 8;
       */
      public int getEntityId() {
        return entityId_;
      }
      /**
       * optional uint32 entity_id = 8;
       */
      public Builder setEntityId(int value) {
        bitField0_ |= 0x00000080;
        entityId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 entity_id = 8;
       */
      public Builder clearEntityId() {
        bitField0_ = (bitField0_ & ~0x00000080);
        entityId_ = 0;
        onChanged();
        return this;
      }

      private int primaryCharges_ ;
      /**
       * optional int32 primary_charges = 9;
       */
      public boolean hasPrimaryCharges() {
        return ((bitField0_ & 0x00000100) == 0x00000100);
      }
      /**
       * optional int32 primary_charges = 9;
       */
      public int getPrimaryCharges() {
        return primaryCharges_;
      }
      /**
       * optional int32 primary_charges = 9;
       */
      public Builder setPrimaryCharges(int value) {
        bitField0_ |= 0x00000100;
        primaryCharges_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 primary_charges = 9;
       */
      public Builder clearPrimaryCharges() {
        bitField0_ = (bitField0_ & ~0x00000100);
        primaryCharges_ = 0;
        onChanged();
        return this;
      }

      private int secondaryCharges_ ;
      /**
       * optional int32 secondary_charges = 10;
       */
      public boolean hasSecondaryCharges() {
        return ((bitField0_ & 0x00000200) == 0x00000200);
      }
      /**
       * optional int32 secondary_charges = 10;
       */
      public int getSecondaryCharges() {
        return secondaryCharges_;
      }
      /**
       * optional int32 secondary_charges = 10;
       */
      public Builder setSecondaryCharges(int value) {
        bitField0_ |= 0x00000200;
        secondaryCharges_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 secondary_charges = 10;
       */
      public Builder clearSecondaryCharges() {
        bitField0_ = (bitField0_ & ~0x00000200);
        secondaryCharges_ = 0;
        onChanged();
        return this;
      }

      private int casterId_ ;
      /**
       * optional uint32 caster_id = 11;
       */
      public boolean hasCasterId() {
        return ((bitField0_ & 0x00000400) == 0x00000400);
      }
      /**
       * optional uint32 caster_id = 11;
       */
      public int getCasterId() {
        return casterId_;
      }
      /**
       * optional uint32 caster_id = 11;
       */
      public Builder setCasterId(int value) {
        bitField0_ |= 0x00000400;
        casterId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 caster_id = 11;
       */
      public Builder clearCasterId() {
        bitField0_ = (bitField0_ & ~0x00000400);
        casterId_ = 0;
        onChanged();
        return this;
      }

      private boolean ctrlHeld_ ;
      /**
       * optional bool ctrl_held = 12;
       */
      public boolean hasCtrlHeld() {
        return ((bitField0_ & 0x00000800) == 0x00000800);
      }
      /**
       * optional bool ctrl_held = 12;
       */
      public boolean getCtrlHeld() {
        return ctrlHeld_;
      }
      /**
       * optional bool ctrl_held = 12;
       */
      public Builder setCtrlHeld(boolean value) {
        bitField0_ |= 0x00000800;
        ctrlHeld_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool ctrl_held = 12;
       */
      public Builder clearCtrlHeld() {
        bitField0_ = (bitField0_ & ~0x00000800);
        ctrlHeld_ = false;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_AbilityPing)
    }

    static {
      defaultInstance = new CDOTAUserMsg_AbilityPing(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_AbilityPing)
  }

  public interface CDOTAUserMsg_TE_UnitAnimationOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_TE_UnitAnimation)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional int32 entity = 1;
     */
    boolean hasEntity();
    /**
     * optional int32 entity = 1;
     */
    int getEntity();

    /**
     * optional int32 sequenceVariant = 2;
     */
    boolean hasSequenceVariant();
    /**
     * optional int32 sequenceVariant = 2;
     */
    int getSequenceVariant();

    /**
     * optional float playbackrate = 3;
     */
    boolean hasPlaybackrate();
    /**
     * optional float playbackrate = 3;
     */
    float getPlaybackrate();

    /**
     * optional float castpoint = 4;
     */
    boolean hasCastpoint();
    /**
     * optional float castpoint = 4;
     */
    float getCastpoint();

    /**
     * optional int32 type = 5;
     */
    boolean hasType();
    /**
     * optional int32 type = 5;
     */
    int getType();

    /**
     * optional int32 activity = 6;
     */
    boolean hasActivity();
    /**
     * optional int32 activity = 6;
     */
    int getActivity();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_TE_UnitAnimation}
   */
  public static final class CDOTAUserMsg_TE_UnitAnimation extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_TE_UnitAnimation)
      CDOTAUserMsg_TE_UnitAnimationOrBuilder {
    // Use CDOTAUserMsg_TE_UnitAnimation.newBuilder() to construct.
    private CDOTAUserMsg_TE_UnitAnimation(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_TE_UnitAnimation(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_TE_UnitAnimation defaultInstance;
    public static CDOTAUserMsg_TE_UnitAnimation getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_TE_UnitAnimation getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_TE_UnitAnimation(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              entity_ = input.readInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              sequenceVariant_ = input.readInt32();
              break;
            }
            case 29: {
              bitField0_ |= 0x00000004;
              playbackrate_ = input.readFloat();
              break;
            }
            case 37: {
              bitField0_ |= 0x00000008;
              castpoint_ = input.readFloat();
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              type_ = input.readInt32();
              break;
            }
            case 48: {
              bitField0_ |= 0x00000020;
              activity_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_TE_UnitAnimation_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_TE_UnitAnimation_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_UnitAnimation.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_UnitAnimation.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_TE_UnitAnimation parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_TE_UnitAnimation(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int ENTITY_FIELD_NUMBER = 1;
    private int entity_;
    /**
     * optional int32 entity = 1;
     */
    public boolean hasEntity() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 entity = 1;
     */
    public int getEntity() {
      return entity_;
    }

    public static final int SEQUENCEVARIANT_FIELD_NUMBER = 2;
    private int sequenceVariant_;
    /**
     * optional int32 sequenceVariant = 2;
     */
    public boolean hasSequenceVariant() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional int32 sequenceVariant = 2;
     */
    public int getSequenceVariant() {
      return sequenceVariant_;
    }

    public static final int PLAYBACKRATE_FIELD_NUMBER = 3;
    private float playbackrate_;
    /**
     * optional float playbackrate = 3;
     */
    public boolean hasPlaybackrate() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional float playbackrate = 3;
     */
    public float getPlaybackrate() {
      return playbackrate_;
    }

    public static final int CASTPOINT_FIELD_NUMBER = 4;
    private float castpoint_;
    /**
     * optional float castpoint = 4;
     */
    public boolean hasCastpoint() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional float castpoint = 4;
     */
    public float getCastpoint() {
      return castpoint_;
    }

    public static final int TYPE_FIELD_NUMBER = 5;
    private int type_;
    /**
     * optional int32 type = 5;
     */
    public boolean hasType() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * optional int32 type = 5;
     */
    public int getType() {
      return type_;
    }

    public static final int ACTIVITY_FIELD_NUMBER = 6;
    private int activity_;
    /**
     * optional int32 activity = 6;
     */
    public boolean hasActivity() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     * optional int32 activity = 6;
     */
    public int getActivity() {
      return activity_;
    }

    private void initFields() {
      entity_ = 0;
      sequenceVariant_ = 0;
      playbackrate_ = 0F;
      castpoint_ = 0F;
      type_ = 0;
      activity_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, entity_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, sequenceVariant_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeFloat(3, playbackrate_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeFloat(4, castpoint_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeInt32(5, type_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeInt32(6, activity_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, entity_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, sequenceVariant_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(3, playbackrate_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(4, castpoint_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(5, type_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(6, activity_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_UnitAnimation parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_UnitAnimation parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_UnitAnimation parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_UnitAnimation parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_UnitAnimation parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_UnitAnimation parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_UnitAnimation parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_UnitAnimation parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_UnitAnimation parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_UnitAnimation parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_UnitAnimation prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_TE_UnitAnimation}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_TE_UnitAnimation)
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_UnitAnimationOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_TE_UnitAnimation_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_TE_UnitAnimation_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_UnitAnimation.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_UnitAnimation.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_UnitAnimation.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        entity_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        sequenceVariant_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        playbackrate_ = 0F;
        bitField0_ = (bitField0_ & ~0x00000004);
        castpoint_ = 0F;
        bitField0_ = (bitField0_ & ~0x00000008);
        type_ = 0;
        bitField0_ = (bitField0_ & ~0x00000010);
        activity_ = 0;
        bitField0_ = (bitField0_ & ~0x00000020);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_TE_UnitAnimation_descriptor;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_UnitAnimation getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_UnitAnimation.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_UnitAnimation build() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_UnitAnimation result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_UnitAnimation buildPartial() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_UnitAnimation result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_UnitAnimation(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.entity_ = entity_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.sequenceVariant_ = sequenceVariant_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.playbackrate_ = playbackrate_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.castpoint_ = castpoint_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.type_ = type_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        result.activity_ = activity_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_UnitAnimation) {
          return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_UnitAnimation)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_UnitAnimation other) {
        if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_UnitAnimation.getDefaultInstance()) return this;
        if (other.hasEntity()) {
          setEntity(other.getEntity());
        }
        if (other.hasSequenceVariant()) {
          setSequenceVariant(other.getSequenceVariant());
        }
        if (other.hasPlaybackrate()) {
          setPlaybackrate(other.getPlaybackrate());
        }
        if (other.hasCastpoint()) {
          setCastpoint(other.getCastpoint());
        }
        if (other.hasType()) {
          setType(other.getType());
        }
        if (other.hasActivity()) {
          setActivity(other.getActivity());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_UnitAnimation parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_UnitAnimation) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int entity_ ;
      /**
       * optional int32 entity = 1;
       */
      public boolean hasEntity() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 entity = 1;
       */
      public int getEntity() {
        return entity_;
      }
      /**
       * optional int32 entity = 1;
       */
      public Builder setEntity(int value) {
        bitField0_ |= 0x00000001;
        entity_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 entity = 1;
       */
      public Builder clearEntity() {
        bitField0_ = (bitField0_ & ~0x00000001);
        entity_ = 0;
        onChanged();
        return this;
      }

      private int sequenceVariant_ ;
      /**
       * optional int32 sequenceVariant = 2;
       */
      public boolean hasSequenceVariant() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional int32 sequenceVariant = 2;
       */
      public int getSequenceVariant() {
        return sequenceVariant_;
      }
      /**
       * optional int32 sequenceVariant = 2;
       */
      public Builder setSequenceVariant(int value) {
        bitField0_ |= 0x00000002;
        sequenceVariant_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 sequenceVariant = 2;
       */
      public Builder clearSequenceVariant() {
        bitField0_ = (bitField0_ & ~0x00000002);
        sequenceVariant_ = 0;
        onChanged();
        return this;
      }

      private float playbackrate_ ;
      /**
       * optional float playbackrate = 3;
       */
      public boolean hasPlaybackrate() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional float playbackrate = 3;
       */
      public float getPlaybackrate() {
        return playbackrate_;
      }
      /**
       * optional float playbackrate = 3;
       */
      public Builder setPlaybackrate(float value) {
        bitField0_ |= 0x00000004;
        playbackrate_ = value;
        onChanged();
        return this;
      }
      /**
       * optional float playbackrate = 3;
       */
      public Builder clearPlaybackrate() {
        bitField0_ = (bitField0_ & ~0x00000004);
        playbackrate_ = 0F;
        onChanged();
        return this;
      }

      private float castpoint_ ;
      /**
       * optional float castpoint = 4;
       */
      public boolean hasCastpoint() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional float castpoint = 4;
       */
      public float getCastpoint() {
        return castpoint_;
      }
      /**
       * optional float castpoint = 4;
       */
      public Builder setCastpoint(float value) {
        bitField0_ |= 0x00000008;
        castpoint_ = value;
        onChanged();
        return this;
      }
      /**
       * optional float castpoint = 4;
       */
      public Builder clearCastpoint() {
        bitField0_ = (bitField0_ & ~0x00000008);
        castpoint_ = 0F;
        onChanged();
        return this;
      }

      private int type_ ;
      /**
       * optional int32 type = 5;
       */
      public boolean hasType() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * optional int32 type = 5;
       */
      public int getType() {
        return type_;
      }
      /**
       * optional int32 type = 5;
       */
      public Builder setType(int value) {
        bitField0_ |= 0x00000010;
        type_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 type = 5;
       */
      public Builder clearType() {
        bitField0_ = (bitField0_ & ~0x00000010);
        type_ = 0;
        onChanged();
        return this;
      }

      private int activity_ ;
      /**
       * optional int32 activity = 6;
       */
      public boolean hasActivity() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * optional int32 activity = 6;
       */
      public int getActivity() {
        return activity_;
      }
      /**
       * optional int32 activity = 6;
       */
      public Builder setActivity(int value) {
        bitField0_ |= 0x00000020;
        activity_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 activity = 6;
       */
      public Builder clearActivity() {
        bitField0_ = (bitField0_ & ~0x00000020);
        activity_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_TE_UnitAnimation)
    }

    static {
      defaultInstance = new CDOTAUserMsg_TE_UnitAnimation(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_TE_UnitAnimation)
  }

  public interface CDOTAUserMsg_TE_UnitAnimationEndOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_TE_UnitAnimationEnd)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional int32 entity = 1;
     */
    boolean hasEntity();
    /**
     * optional int32 entity = 1;
     */
    int getEntity();

    /**
     * optional bool snap = 2;
     */
    boolean hasSnap();
    /**
     * optional bool snap = 2;
     */
    boolean getSnap();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_TE_UnitAnimationEnd}
   */
  public static final class CDOTAUserMsg_TE_UnitAnimationEnd extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_TE_UnitAnimationEnd)
      CDOTAUserMsg_TE_UnitAnimationEndOrBuilder {
    // Use CDOTAUserMsg_TE_UnitAnimationEnd.newBuilder() to construct.
    private CDOTAUserMsg_TE_UnitAnimationEnd(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_TE_UnitAnimationEnd(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_TE_UnitAnimationEnd defaultInstance;
    public static CDOTAUserMsg_TE_UnitAnimationEnd getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_TE_UnitAnimationEnd getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_TE_UnitAnimationEnd(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              entity_ = input.readInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              snap_ = input.readBool();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_TE_UnitAnimationEnd_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_TE_UnitAnimationEnd_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_UnitAnimationEnd.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_UnitAnimationEnd.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_TE_UnitAnimationEnd parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_TE_UnitAnimationEnd(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int ENTITY_FIELD_NUMBER = 1;
    private int entity_;
    /**
     * optional int32 entity = 1;
     */
    public boolean hasEntity() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 entity = 1;
     */
    public int getEntity() {
      return entity_;
    }

    public static final int SNAP_FIELD_NUMBER = 2;
    private boolean snap_;
    /**
     * optional bool snap = 2;
     */
    public boolean hasSnap() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional bool snap = 2;
     */
    public boolean getSnap() {
      return snap_;
    }

    private void initFields() {
      entity_ = 0;
      snap_ = false;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, entity_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBool(2, snap_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, entity_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(2, snap_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_UnitAnimationEnd parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_UnitAnimationEnd parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_UnitAnimationEnd parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_UnitAnimationEnd parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_UnitAnimationEnd parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_UnitAnimationEnd parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_UnitAnimationEnd parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_UnitAnimationEnd parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_UnitAnimationEnd parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_UnitAnimationEnd parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_UnitAnimationEnd prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_TE_UnitAnimationEnd}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_TE_UnitAnimationEnd)
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_UnitAnimationEndOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_TE_UnitAnimationEnd_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_TE_UnitAnimationEnd_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_UnitAnimationEnd.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_UnitAnimationEnd.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_UnitAnimationEnd.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        entity_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        snap_ = false;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_TE_UnitAnimationEnd_descriptor;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_UnitAnimationEnd getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_UnitAnimationEnd.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_UnitAnimationEnd build() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_UnitAnimationEnd result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_UnitAnimationEnd buildPartial() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_UnitAnimationEnd result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_UnitAnimationEnd(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.entity_ = entity_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.snap_ = snap_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_UnitAnimationEnd) {
          return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_UnitAnimationEnd)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_UnitAnimationEnd other) {
        if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_UnitAnimationEnd.getDefaultInstance()) return this;
        if (other.hasEntity()) {
          setEntity(other.getEntity());
        }
        if (other.hasSnap()) {
          setSnap(other.getSnap());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_UnitAnimationEnd parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TE_UnitAnimationEnd) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int entity_ ;
      /**
       * optional int32 entity = 1;
       */
      public boolean hasEntity() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 entity = 1;
       */
      public int getEntity() {
        return entity_;
      }
      /**
       * optional int32 entity = 1;
       */
      public Builder setEntity(int value) {
        bitField0_ |= 0x00000001;
        entity_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 entity = 1;
       */
      public Builder clearEntity() {
        bitField0_ = (bitField0_ & ~0x00000001);
        entity_ = 0;
        onChanged();
        return this;
      }

      private boolean snap_ ;
      /**
       * optional bool snap = 2;
       */
      public boolean hasSnap() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional bool snap = 2;
       */
      public boolean getSnap() {
        return snap_;
      }
      /**
       * optional bool snap = 2;
       */
      public Builder setSnap(boolean value) {
        bitField0_ |= 0x00000002;
        snap_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool snap = 2;
       */
      public Builder clearSnap() {
        bitField0_ = (bitField0_ & ~0x00000002);
        snap_ = false;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_TE_UnitAnimationEnd)
    }

    static {
      defaultInstance = new CDOTAUserMsg_TE_UnitAnimationEnd(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_TE_UnitAnimationEnd)
  }

  public interface CDOTAUserMsg_AbilityStealOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_AbilitySteal)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional uint32 player_id = 1;
     */
    boolean hasPlayerId();
    /**
     * optional uint32 player_id = 1;
     */
    int getPlayerId();

    /**
     * optional uint32 ability_id = 2;
     */
    boolean hasAbilityId();
    /**
     * optional uint32 ability_id = 2;
     */
    int getAbilityId();

    /**
     * optional uint32 ability_level = 3;
     */
    boolean hasAbilityLevel();
    /**
     * optional uint32 ability_level = 3;
     */
    int getAbilityLevel();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_AbilitySteal}
   */
  public static final class CDOTAUserMsg_AbilitySteal extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_AbilitySteal)
      CDOTAUserMsg_AbilityStealOrBuilder {
    // Use CDOTAUserMsg_AbilitySteal.newBuilder() to construct.
    private CDOTAUserMsg_AbilitySteal(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_AbilitySteal(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_AbilitySteal defaultInstance;
    public static CDOTAUserMsg_AbilitySteal getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_AbilitySteal getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_AbilitySteal(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              playerId_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              abilityId_ = input.readUInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              abilityLevel_ = input.readUInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_AbilitySteal_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_AbilitySteal_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AbilitySteal.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AbilitySteal.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_AbilitySteal parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_AbilitySteal(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int PLAYER_ID_FIELD_NUMBER = 1;
    private int playerId_;
    /**
     * optional uint32 player_id = 1;
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional uint32 player_id = 1;
     */
    public int getPlayerId() {
      return playerId_;
    }

    public static final int ABILITY_ID_FIELD_NUMBER = 2;
    private int abilityId_;
    /**
     * optional uint32 ability_id = 2;
     */
    public boolean hasAbilityId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional uint32 ability_id = 2;
     */
    public int getAbilityId() {
      return abilityId_;
    }

    public static final int ABILITY_LEVEL_FIELD_NUMBER = 3;
    private int abilityLevel_;
    /**
     * optional uint32 ability_level = 3;
     */
    public boolean hasAbilityLevel() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional uint32 ability_level = 3;
     */
    public int getAbilityLevel() {
      return abilityLevel_;
    }

    private void initFields() {
      playerId_ = 0;
      abilityId_ = 0;
      abilityLevel_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, abilityId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeUInt32(3, abilityLevel_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, abilityId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, abilityLevel_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AbilitySteal parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AbilitySteal parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AbilitySteal parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AbilitySteal parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AbilitySteal parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AbilitySteal parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AbilitySteal parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AbilitySteal parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AbilitySteal parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AbilitySteal parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AbilitySteal prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_AbilitySteal}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_AbilitySteal)
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AbilityStealOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_AbilitySteal_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_AbilitySteal_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AbilitySteal.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AbilitySteal.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AbilitySteal.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        abilityId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        abilityLevel_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_AbilitySteal_descriptor;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AbilitySteal getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AbilitySteal.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AbilitySteal build() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AbilitySteal result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AbilitySteal buildPartial() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AbilitySteal result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AbilitySteal(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.playerId_ = playerId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.abilityId_ = abilityId_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.abilityLevel_ = abilityLevel_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AbilitySteal) {
          return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AbilitySteal)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AbilitySteal other) {
        if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AbilitySteal.getDefaultInstance()) return this;
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        if (other.hasAbilityId()) {
          setAbilityId(other.getAbilityId());
        }
        if (other.hasAbilityLevel()) {
          setAbilityLevel(other.getAbilityLevel());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AbilitySteal parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AbilitySteal) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int playerId_ ;
      /**
       * optional uint32 player_id = 1;
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional uint32 player_id = 1;
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * optional uint32 player_id = 1;
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000001;
        playerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 player_id = 1;
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        onChanged();
        return this;
      }

      private int abilityId_ ;
      /**
       * optional uint32 ability_id = 2;
       */
      public boolean hasAbilityId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional uint32 ability_id = 2;
       */
      public int getAbilityId() {
        return abilityId_;
      }
      /**
       * optional uint32 ability_id = 2;
       */
      public Builder setAbilityId(int value) {
        bitField0_ |= 0x00000002;
        abilityId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 ability_id = 2;
       */
      public Builder clearAbilityId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        abilityId_ = 0;
        onChanged();
        return this;
      }

      private int abilityLevel_ ;
      /**
       * optional uint32 ability_level = 3;
       */
      public boolean hasAbilityLevel() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional uint32 ability_level = 3;
       */
      public int getAbilityLevel() {
        return abilityLevel_;
      }
      /**
       * optional uint32 ability_level = 3;
       */
      public Builder setAbilityLevel(int value) {
        bitField0_ |= 0x00000004;
        abilityLevel_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 ability_level = 3;
       */
      public Builder clearAbilityLevel() {
        bitField0_ = (bitField0_ & ~0x00000004);
        abilityLevel_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_AbilitySteal)
    }

    static {
      defaultInstance = new CDOTAUserMsg_AbilitySteal(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_AbilitySteal)
  }

  public interface CDOTAUserMsg_StatsHeroLookupOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_StatsHeroLookup)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional int32 player_id = 1;
     */
    boolean hasPlayerId();
    /**
     * optional int32 player_id = 1;
     */
    int getPlayerId();

    /**
     * optional int32 hero_id = 2;
     */
    boolean hasHeroId();
    /**
     * optional int32 hero_id = 2;
     */
    int getHeroId();

    /**
     * optional string hero_name = 3;
     */
    boolean hasHeroName();
    /**
     * optional string hero_name = 3;
     */
    java.lang.String getHeroName();
    /**
     * optional string hero_name = 3;
     */
    com.google.protobuf.ByteString
        getHeroNameBytes();

    /**
     * optional string persona = 4;
     */
    boolean hasPersona();
    /**
     * optional string persona = 4;
     */
    java.lang.String getPersona();
    /**
     * optional string persona = 4;
     */
    com.google.protobuf.ByteString
        getPersonaBytes();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_StatsHeroLookup}
   */
  public static final class CDOTAUserMsg_StatsHeroLookup extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_StatsHeroLookup)
      CDOTAUserMsg_StatsHeroLookupOrBuilder {
    // Use CDOTAUserMsg_StatsHeroLookup.newBuilder() to construct.
    private CDOTAUserMsg_StatsHeroLookup(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_StatsHeroLookup(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_StatsHeroLookup defaultInstance;
    public static CDOTAUserMsg_StatsHeroLookup getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_StatsHeroLookup getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_StatsHeroLookup(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              playerId_ = input.readInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              heroId_ = input.readInt32();
              break;
            }
            case 26: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000004;
              heroName_ = bs;
              break;
            }
            case 34: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000008;
              persona_ = bs;
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_StatsHeroLookup_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_StatsHeroLookup_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroLookup.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroLookup.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_StatsHeroLookup parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_StatsHeroLookup(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int PLAYER_ID_FIELD_NUMBER = 1;
    private int playerId_;
    /**
     * optional int32 player_id = 1;
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 player_id = 1;
     */
    public int getPlayerId() {
      return playerId_;
    }

    public static final int HERO_ID_FIELD_NUMBER = 2;
    private int heroId_;
    /**
     * optional int32 hero_id = 2;
     */
    public boolean hasHeroId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional int32 hero_id = 2;
     */
    public int getHeroId() {
      return heroId_;
    }

    public static final int HERO_NAME_FIELD_NUMBER = 3;
    private java.lang.Object heroName_;
    /**
     * optional string hero_name = 3;
     */
    public boolean hasHeroName() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional string hero_name = 3;
     */
    public java.lang.String getHeroName() {
      java.lang.Object ref = heroName_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          heroName_ = s;
        }
        return s;
      }
    }
    /**
     * optional string hero_name = 3;
     */
    public com.google.protobuf.ByteString
        getHeroNameBytes() {
      java.lang.Object ref = heroName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        heroName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int PERSONA_FIELD_NUMBER = 4;
    private java.lang.Object persona_;
    /**
     * optional string persona = 4;
     */
    public boolean hasPersona() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional string persona = 4;
     */
    public java.lang.String getPersona() {
      java.lang.Object ref = persona_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          persona_ = s;
        }
        return s;
      }
    }
    /**
     * optional string persona = 4;
     */
    public com.google.protobuf.ByteString
        getPersonaBytes() {
      java.lang.Object ref = persona_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        persona_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private void initFields() {
      playerId_ = 0;
      heroId_ = 0;
      heroName_ = "";
      persona_ = "";
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, heroId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBytes(3, getHeroNameBytes());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeBytes(4, getPersonaBytes());
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, heroId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(3, getHeroNameBytes());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(4, getPersonaBytes());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroLookup parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroLookup parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroLookup parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroLookup parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroLookup parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroLookup parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroLookup parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroLookup parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroLookup parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroLookup parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroLookup prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_StatsHeroLookup}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_StatsHeroLookup)
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroLookupOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_StatsHeroLookup_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_StatsHeroLookup_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroLookup.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroLookup.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroLookup.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        heroId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        heroName_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        persona_ = "";
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_StatsHeroLookup_descriptor;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroLookup getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroLookup.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroLookup build() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroLookup result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroLookup buildPartial() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroLookup result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroLookup(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.playerId_ = playerId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.heroId_ = heroId_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.heroName_ = heroName_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.persona_ = persona_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroLookup) {
          return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroLookup)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroLookup other) {
        if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroLookup.getDefaultInstance()) return this;
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        if (other.hasHeroId()) {
          setHeroId(other.getHeroId());
        }
        if (other.hasHeroName()) {
          bitField0_ |= 0x00000004;
          heroName_ = other.heroName_;
          onChanged();
        }
        if (other.hasPersona()) {
          bitField0_ |= 0x00000008;
          persona_ = other.persona_;
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroLookup parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroLookup) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int playerId_ ;
      /**
       * optional int32 player_id = 1;
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 player_id = 1;
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * optional int32 player_id = 1;
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000001;
        playerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 player_id = 1;
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        onChanged();
        return this;
      }

      private int heroId_ ;
      /**
       * optional int32 hero_id = 2;
       */
      public boolean hasHeroId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional int32 hero_id = 2;
       */
      public int getHeroId() {
        return heroId_;
      }
      /**
       * optional int32 hero_id = 2;
       */
      public Builder setHeroId(int value) {
        bitField0_ |= 0x00000002;
        heroId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 hero_id = 2;
       */
      public Builder clearHeroId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        heroId_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object heroName_ = "";
      /**
       * optional string hero_name = 3;
       */
      public boolean hasHeroName() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional string hero_name = 3;
       */
      public java.lang.String getHeroName() {
        java.lang.Object ref = heroName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            heroName_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string hero_name = 3;
       */
      public com.google.protobuf.ByteString
          getHeroNameBytes() {
        java.lang.Object ref = heroName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          heroName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string hero_name = 3;
       */
      public Builder setHeroName(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        heroName_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string hero_name = 3;
       */
      public Builder clearHeroName() {
        bitField0_ = (bitField0_ & ~0x00000004);
        heroName_ = getDefaultInstance().getHeroName();
        onChanged();
        return this;
      }
      /**
       * optional string hero_name = 3;
       */
      public Builder setHeroNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        heroName_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object persona_ = "";
      /**
       * optional string persona = 4;
       */
      public boolean hasPersona() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional string persona = 4;
       */
      public java.lang.String getPersona() {
        java.lang.Object ref = persona_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            persona_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string persona = 4;
       */
      public com.google.protobuf.ByteString
          getPersonaBytes() {
        java.lang.Object ref = persona_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          persona_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string persona = 4;
       */
      public Builder setPersona(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000008;
        persona_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string persona = 4;
       */
      public Builder clearPersona() {
        bitField0_ = (bitField0_ & ~0x00000008);
        persona_ = getDefaultInstance().getPersona();
        onChanged();
        return this;
      }
      /**
       * optional string persona = 4;
       */
      public Builder setPersonaBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000008;
        persona_ = value;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_StatsHeroLookup)
    }

    static {
      defaultInstance = new CDOTAUserMsg_StatsHeroLookup(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_StatsHeroLookup)
  }

  public interface CDOTAUserMsg_StatsHeroPositionInfoOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_StatsHeroPositionInfo)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional float average_position = 1;
     */
    boolean hasAveragePosition();
    /**
     * optional float average_position = 1;
     */
    float getAveragePosition();

    /**
     * repeated .CDOTAUserMsg_StatsHeroPositionInfo.PositionPair position_details = 2;
     */
    java.util.List 
        getPositionDetailsList();
    /**
     * repeated .CDOTAUserMsg_StatsHeroPositionInfo.PositionPair position_details = 2;
     */
    skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPair getPositionDetails(int index);
    /**
     * repeated .CDOTAUserMsg_StatsHeroPositionInfo.PositionPair position_details = 2;
     */
    int getPositionDetailsCount();
    /**
     * repeated .CDOTAUserMsg_StatsHeroPositionInfo.PositionPair position_details = 2;
     */
    java.util.List 
        getPositionDetailsOrBuilderList();
    /**
     * repeated .CDOTAUserMsg_StatsHeroPositionInfo.PositionPair position_details = 2;
     */
    skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPairOrBuilder getPositionDetailsOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_StatsHeroPositionInfo}
   */
  public static final class CDOTAUserMsg_StatsHeroPositionInfo extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_StatsHeroPositionInfo)
      CDOTAUserMsg_StatsHeroPositionInfoOrBuilder {
    // Use CDOTAUserMsg_StatsHeroPositionInfo.newBuilder() to construct.
    private CDOTAUserMsg_StatsHeroPositionInfo(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_StatsHeroPositionInfo(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_StatsHeroPositionInfo defaultInstance;
    public static CDOTAUserMsg_StatsHeroPositionInfo getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_StatsHeroPositionInfo getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_StatsHeroPositionInfo(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 13: {
              bitField0_ |= 0x00000001;
              averagePosition_ = input.readFloat();
              break;
            }
            case 18: {
              if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                positionDetails_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000002;
              }
              positionDetails_.add(input.readMessage(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPair.PARSER, extensionRegistry));
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
          positionDetails_ = java.util.Collections.unmodifiableList(positionDetails_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_StatsHeroPositionInfo_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_StatsHeroPositionInfo_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_StatsHeroPositionInfo parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_StatsHeroPositionInfo(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    public interface PositionPairOrBuilder extends
        // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_StatsHeroPositionInfo.PositionPair)
        com.google.protobuf.MessageOrBuilder {

      /**
       * optional .DOTA_POSITION_CATEGORY position_category = 1 [default = DOTA_POSITION_NONE];
       */
      boolean hasPositionCategory();
      /**
       * optional .DOTA_POSITION_CATEGORY position_category = 1 [default = DOTA_POSITION_NONE];
       */
      skadistats.clarity.wire.common.proto.DotaUserMessages.DOTA_POSITION_CATEGORY getPositionCategory();

      /**
       * optional uint32 position_count = 2;
       */
      boolean hasPositionCount();
      /**
       * optional uint32 position_count = 2;
       */
      int getPositionCount();
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_StatsHeroPositionInfo.PositionPair}
     */
    public static final class PositionPair extends
        com.google.protobuf.GeneratedMessage implements
        // @@protoc_insertion_point(message_implements:CDOTAUserMsg_StatsHeroPositionInfo.PositionPair)
        PositionPairOrBuilder {
      // Use PositionPair.newBuilder() to construct.
      private PositionPair(com.google.protobuf.GeneratedMessage.Builder builder) {
        super(builder);
        this.unknownFields = builder.getUnknownFields();
      }
      private PositionPair(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

      private static final PositionPair defaultInstance;
      public static PositionPair getDefaultInstance() {
        return defaultInstance;
      }

      public PositionPair getDefaultInstanceForType() {
        return defaultInstance;
      }

      private final com.google.protobuf.UnknownFieldSet unknownFields;
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
          getUnknownFields() {
        return this.unknownFields;
      }
      private PositionPair(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        initFields();
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
              case 8: {
                int rawValue = input.readEnum();
                skadistats.clarity.wire.common.proto.DotaUserMessages.DOTA_POSITION_CATEGORY value = skadistats.clarity.wire.common.proto.DotaUserMessages.DOTA_POSITION_CATEGORY.valueOf(rawValue);
                if (value == null) {
                  unknownFields.mergeVarintField(1, rawValue);
                } else {
                  bitField0_ |= 0x00000001;
                  positionCategory_ = value;
                }
                break;
              }
              case 16: {
                bitField0_ |= 0x00000002;
                positionCount_ = input.readUInt32();
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e.getMessage()).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_StatsHeroPositionInfo_PositionPair_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_StatsHeroPositionInfo_PositionPair_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPair.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPair.Builder.class);
      }

      public static com.google.protobuf.Parser PARSER =
          new com.google.protobuf.AbstractParser() {
        public PositionPair parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new PositionPair(input, extensionRegistry);
        }
      };

      @java.lang.Override
      public com.google.protobuf.Parser getParserForType() {
        return PARSER;
      }

      private int bitField0_;
      public static final int POSITION_CATEGORY_FIELD_NUMBER = 1;
      private skadistats.clarity.wire.common.proto.DotaUserMessages.DOTA_POSITION_CATEGORY positionCategory_;
      /**
       * optional .DOTA_POSITION_CATEGORY position_category = 1 [default = DOTA_POSITION_NONE];
       */
      public boolean hasPositionCategory() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional .DOTA_POSITION_CATEGORY position_category = 1 [default = DOTA_POSITION_NONE];
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.DOTA_POSITION_CATEGORY getPositionCategory() {
        return positionCategory_;
      }

      public static final int POSITION_COUNT_FIELD_NUMBER = 2;
      private int positionCount_;
      /**
       * optional uint32 position_count = 2;
       */
      public boolean hasPositionCount() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional uint32 position_count = 2;
       */
      public int getPositionCount() {
        return positionCount_;
      }

      private void initFields() {
        positionCategory_ = skadistats.clarity.wire.common.proto.DotaUserMessages.DOTA_POSITION_CATEGORY.DOTA_POSITION_NONE;
        positionCount_ = 0;
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeEnum(1, positionCategory_.getNumber());
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeUInt32(2, positionCount_);
        }
        getUnknownFields().writeTo(output);
      }

      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;

        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeEnumSize(1, positionCategory_.getNumber());
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeUInt32Size(2, positionCount_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.Object writeReplace()
          throws java.io.ObjectStreamException {
        return super.writeReplace();
      }

      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPair parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPair parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPair parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPair parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPair parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPair parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPair parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPair parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPair parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPair parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }

      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPair prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code CDOTAUserMsg_StatsHeroPositionInfo.PositionPair}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder implements
          // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_StatsHeroPositionInfo.PositionPair)
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPairOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_StatsHeroPositionInfo_PositionPair_descriptor;
        }

        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_StatsHeroPositionInfo_PositionPair_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPair.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPair.Builder.class);
        }

        // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPair.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          }
        }
        private static Builder create() {
          return new Builder();
        }

        public Builder clear() {
          super.clear();
          positionCategory_ = skadistats.clarity.wire.common.proto.DotaUserMessages.DOTA_POSITION_CATEGORY.DOTA_POSITION_NONE;
          bitField0_ = (bitField0_ & ~0x00000001);
          positionCount_ = 0;
          bitField0_ = (bitField0_ & ~0x00000002);
          return this;
        }

        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }

        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_StatsHeroPositionInfo_PositionPair_descriptor;
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPair getDefaultInstanceForType() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPair.getDefaultInstance();
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPair build() {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPair result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPair buildPartial() {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPair result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPair(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.positionCategory_ = positionCategory_;
          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
            to_bitField0_ |= 0x00000002;
          }
          result.positionCount_ = positionCount_;
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }

        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPair) {
            return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPair)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPair other) {
          if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPair.getDefaultInstance()) return this;
          if (other.hasPositionCategory()) {
            setPositionCategory(other.getPositionCategory());
          }
          if (other.hasPositionCount()) {
            setPositionCount(other.getPositionCount());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }

        public final boolean isInitialized() {
          return true;
        }

        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPair parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPair) e.getUnfinishedMessage();
            throw e;
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        private skadistats.clarity.wire.common.proto.DotaUserMessages.DOTA_POSITION_CATEGORY positionCategory_ = skadistats.clarity.wire.common.proto.DotaUserMessages.DOTA_POSITION_CATEGORY.DOTA_POSITION_NONE;
        /**
         * optional .DOTA_POSITION_CATEGORY position_category = 1 [default = DOTA_POSITION_NONE];
         */
        public boolean hasPositionCategory() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * optional .DOTA_POSITION_CATEGORY position_category = 1 [default = DOTA_POSITION_NONE];
         */
        public skadistats.clarity.wire.common.proto.DotaUserMessages.DOTA_POSITION_CATEGORY getPositionCategory() {
          return positionCategory_;
        }
        /**
         * optional .DOTA_POSITION_CATEGORY position_category = 1 [default = DOTA_POSITION_NONE];
         */
        public Builder setPositionCategory(skadistats.clarity.wire.common.proto.DotaUserMessages.DOTA_POSITION_CATEGORY value) {
          if (value == null) {
            throw new NullPointerException();
          }
          bitField0_ |= 0x00000001;
          positionCategory_ = value;
          onChanged();
          return this;
        }
        /**
         * optional .DOTA_POSITION_CATEGORY position_category = 1 [default = DOTA_POSITION_NONE];
         */
        public Builder clearPositionCategory() {
          bitField0_ = (bitField0_ & ~0x00000001);
          positionCategory_ = skadistats.clarity.wire.common.proto.DotaUserMessages.DOTA_POSITION_CATEGORY.DOTA_POSITION_NONE;
          onChanged();
          return this;
        }

        private int positionCount_ ;
        /**
         * optional uint32 position_count = 2;
         */
        public boolean hasPositionCount() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        /**
         * optional uint32 position_count = 2;
         */
        public int getPositionCount() {
          return positionCount_;
        }
        /**
         * optional uint32 position_count = 2;
         */
        public Builder setPositionCount(int value) {
          bitField0_ |= 0x00000002;
          positionCount_ = value;
          onChanged();
          return this;
        }
        /**
         * optional uint32 position_count = 2;
         */
        public Builder clearPositionCount() {
          bitField0_ = (bitField0_ & ~0x00000002);
          positionCount_ = 0;
          onChanged();
          return this;
        }

        // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_StatsHeroPositionInfo.PositionPair)
      }

      static {
        defaultInstance = new PositionPair(true);
        defaultInstance.initFields();
      }

      // @@protoc_insertion_point(class_scope:CDOTAUserMsg_StatsHeroPositionInfo.PositionPair)
    }

    private int bitField0_;
    public static final int AVERAGE_POSITION_FIELD_NUMBER = 1;
    private float averagePosition_;
    /**
     * optional float average_position = 1;
     */
    public boolean hasAveragePosition() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional float average_position = 1;
     */
    public float getAveragePosition() {
      return averagePosition_;
    }

    public static final int POSITION_DETAILS_FIELD_NUMBER = 2;
    private java.util.List positionDetails_;
    /**
     * repeated .CDOTAUserMsg_StatsHeroPositionInfo.PositionPair position_details = 2;
     */
    public java.util.List getPositionDetailsList() {
      return positionDetails_;
    }
    /**
     * repeated .CDOTAUserMsg_StatsHeroPositionInfo.PositionPair position_details = 2;
     */
    public java.util.List 
        getPositionDetailsOrBuilderList() {
      return positionDetails_;
    }
    /**
     * repeated .CDOTAUserMsg_StatsHeroPositionInfo.PositionPair position_details = 2;
     */
    public int getPositionDetailsCount() {
      return positionDetails_.size();
    }
    /**
     * repeated .CDOTAUserMsg_StatsHeroPositionInfo.PositionPair position_details = 2;
     */
    public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPair getPositionDetails(int index) {
      return positionDetails_.get(index);
    }
    /**
     * repeated .CDOTAUserMsg_StatsHeroPositionInfo.PositionPair position_details = 2;
     */
    public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPairOrBuilder getPositionDetailsOrBuilder(
        int index) {
      return positionDetails_.get(index);
    }

    private void initFields() {
      averagePosition_ = 0F;
      positionDetails_ = java.util.Collections.emptyList();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeFloat(1, averagePosition_);
      }
      for (int i = 0; i < positionDetails_.size(); i++) {
        output.writeMessage(2, positionDetails_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(1, averagePosition_);
      }
      for (int i = 0; i < positionDetails_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, positionDetails_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroPositionInfo parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroPositionInfo parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroPositionInfo parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroPositionInfo parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroPositionInfo parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroPositionInfo parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroPositionInfo parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroPositionInfo parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroPositionInfo parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroPositionInfo parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroPositionInfo prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_StatsHeroPositionInfo}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_StatsHeroPositionInfo)
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroPositionInfoOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_StatsHeroPositionInfo_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_StatsHeroPositionInfo_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getPositionDetailsFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        averagePosition_ = 0F;
        bitField0_ = (bitField0_ & ~0x00000001);
        if (positionDetailsBuilder_ == null) {
          positionDetails_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
        } else {
          positionDetailsBuilder_.clear();
        }
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_StatsHeroPositionInfo_descriptor;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroPositionInfo getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroPositionInfo build() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroPositionInfo result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroPositionInfo buildPartial() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroPositionInfo result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroPositionInfo(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.averagePosition_ = averagePosition_;
        if (positionDetailsBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            positionDetails_ = java.util.Collections.unmodifiableList(positionDetails_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.positionDetails_ = positionDetails_;
        } else {
          result.positionDetails_ = positionDetailsBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroPositionInfo) {
          return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroPositionInfo)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroPositionInfo other) {
        if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.getDefaultInstance()) return this;
        if (other.hasAveragePosition()) {
          setAveragePosition(other.getAveragePosition());
        }
        if (positionDetailsBuilder_ == null) {
          if (!other.positionDetails_.isEmpty()) {
            if (positionDetails_.isEmpty()) {
              positionDetails_ = other.positionDetails_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensurePositionDetailsIsMutable();
              positionDetails_.addAll(other.positionDetails_);
            }
            onChanged();
          }
        } else {
          if (!other.positionDetails_.isEmpty()) {
            if (positionDetailsBuilder_.isEmpty()) {
              positionDetailsBuilder_.dispose();
              positionDetailsBuilder_ = null;
              positionDetails_ = other.positionDetails_;
              bitField0_ = (bitField0_ & ~0x00000002);
              positionDetailsBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getPositionDetailsFieldBuilder() : null;
            } else {
              positionDetailsBuilder_.addAllMessages(other.positionDetails_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroPositionInfo parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroPositionInfo) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private float averagePosition_ ;
      /**
       * optional float average_position = 1;
       */
      public boolean hasAveragePosition() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional float average_position = 1;
       */
      public float getAveragePosition() {
        return averagePosition_;
      }
      /**
       * optional float average_position = 1;
       */
      public Builder setAveragePosition(float value) {
        bitField0_ |= 0x00000001;
        averagePosition_ = value;
        onChanged();
        return this;
      }
      /**
       * optional float average_position = 1;
       */
      public Builder clearAveragePosition() {
        bitField0_ = (bitField0_ & ~0x00000001);
        averagePosition_ = 0F;
        onChanged();
        return this;
      }

      private java.util.List positionDetails_ =
        java.util.Collections.emptyList();
      private void ensurePositionDetailsIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          positionDetails_ = new java.util.ArrayList(positionDetails_);
          bitField0_ |= 0x00000002;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPair, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPair.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPairOrBuilder> positionDetailsBuilder_;

      /**
       * repeated .CDOTAUserMsg_StatsHeroPositionInfo.PositionPair position_details = 2;
       */
      public java.util.List getPositionDetailsList() {
        if (positionDetailsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(positionDetails_);
        } else {
          return positionDetailsBuilder_.getMessageList();
        }
      }
      /**
       * repeated .CDOTAUserMsg_StatsHeroPositionInfo.PositionPair position_details = 2;
       */
      public int getPositionDetailsCount() {
        if (positionDetailsBuilder_ == null) {
          return positionDetails_.size();
        } else {
          return positionDetailsBuilder_.getCount();
        }
      }
      /**
       * repeated .CDOTAUserMsg_StatsHeroPositionInfo.PositionPair position_details = 2;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPair getPositionDetails(int index) {
        if (positionDetailsBuilder_ == null) {
          return positionDetails_.get(index);
        } else {
          return positionDetailsBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .CDOTAUserMsg_StatsHeroPositionInfo.PositionPair position_details = 2;
       */
      public Builder setPositionDetails(
          int index, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPair value) {
        if (positionDetailsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePositionDetailsIsMutable();
          positionDetails_.set(index, value);
          onChanged();
        } else {
          positionDetailsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_StatsHeroPositionInfo.PositionPair position_details = 2;
       */
      public Builder setPositionDetails(
          int index, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPair.Builder builderForValue) {
        if (positionDetailsBuilder_ == null) {
          ensurePositionDetailsIsMutable();
          positionDetails_.set(index, builderForValue.build());
          onChanged();
        } else {
          positionDetailsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_StatsHeroPositionInfo.PositionPair position_details = 2;
       */
      public Builder addPositionDetails(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPair value) {
        if (positionDetailsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePositionDetailsIsMutable();
          positionDetails_.add(value);
          onChanged();
        } else {
          positionDetailsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_StatsHeroPositionInfo.PositionPair position_details = 2;
       */
      public Builder addPositionDetails(
          int index, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPair value) {
        if (positionDetailsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePositionDetailsIsMutable();
          positionDetails_.add(index, value);
          onChanged();
        } else {
          positionDetailsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_StatsHeroPositionInfo.PositionPair position_details = 2;
       */
      public Builder addPositionDetails(
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPair.Builder builderForValue) {
        if (positionDetailsBuilder_ == null) {
          ensurePositionDetailsIsMutable();
          positionDetails_.add(builderForValue.build());
          onChanged();
        } else {
          positionDetailsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_StatsHeroPositionInfo.PositionPair position_details = 2;
       */
      public Builder addPositionDetails(
          int index, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPair.Builder builderForValue) {
        if (positionDetailsBuilder_ == null) {
          ensurePositionDetailsIsMutable();
          positionDetails_.add(index, builderForValue.build());
          onChanged();
        } else {
          positionDetailsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_StatsHeroPositionInfo.PositionPair position_details = 2;
       */
      public Builder addAllPositionDetails(
          java.lang.Iterable values) {
        if (positionDetailsBuilder_ == null) {
          ensurePositionDetailsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, positionDetails_);
          onChanged();
        } else {
          positionDetailsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_StatsHeroPositionInfo.PositionPair position_details = 2;
       */
      public Builder clearPositionDetails() {
        if (positionDetailsBuilder_ == null) {
          positionDetails_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          positionDetailsBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_StatsHeroPositionInfo.PositionPair position_details = 2;
       */
      public Builder removePositionDetails(int index) {
        if (positionDetailsBuilder_ == null) {
          ensurePositionDetailsIsMutable();
          positionDetails_.remove(index);
          onChanged();
        } else {
          positionDetailsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_StatsHeroPositionInfo.PositionPair position_details = 2;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPair.Builder getPositionDetailsBuilder(
          int index) {
        return getPositionDetailsFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .CDOTAUserMsg_StatsHeroPositionInfo.PositionPair position_details = 2;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPairOrBuilder getPositionDetailsOrBuilder(
          int index) {
        if (positionDetailsBuilder_ == null) {
          return positionDetails_.get(index);  } else {
          return positionDetailsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .CDOTAUserMsg_StatsHeroPositionInfo.PositionPair position_details = 2;
       */
      public java.util.List 
           getPositionDetailsOrBuilderList() {
        if (positionDetailsBuilder_ != null) {
          return positionDetailsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(positionDetails_);
        }
      }
      /**
       * repeated .CDOTAUserMsg_StatsHeroPositionInfo.PositionPair position_details = 2;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPair.Builder addPositionDetailsBuilder() {
        return getPositionDetailsFieldBuilder().addBuilder(
            skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPair.getDefaultInstance());
      }
      /**
       * repeated .CDOTAUserMsg_StatsHeroPositionInfo.PositionPair position_details = 2;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPair.Builder addPositionDetailsBuilder(
          int index) {
        return getPositionDetailsFieldBuilder().addBuilder(
            index, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPair.getDefaultInstance());
      }
      /**
       * repeated .CDOTAUserMsg_StatsHeroPositionInfo.PositionPair position_details = 2;
       */
      public java.util.List 
           getPositionDetailsBuilderList() {
        return getPositionDetailsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPair, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPair.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPairOrBuilder> 
          getPositionDetailsFieldBuilder() {
        if (positionDetailsBuilder_ == null) {
          positionDetailsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPair, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPair.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPairOrBuilder>(
                  positionDetails_,
                  ((bitField0_ & 0x00000002) == 0x00000002),
                  getParentForChildren(),
                  isClean());
          positionDetails_ = null;
        }
        return positionDetailsBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_StatsHeroPositionInfo)
    }

    static {
      defaultInstance = new CDOTAUserMsg_StatsHeroPositionInfo(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_StatsHeroPositionInfo)
  }

  public interface CDOTAUserMsg_StatsPlayerKillShareOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_StatsPlayerKillShare)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional int32 player_id = 1;
     */
    boolean hasPlayerId();
    /**
     * optional int32 player_id = 1;
     */
    int getPlayerId();

    /**
     * optional float kill_share_percent = 2;
     */
    boolean hasKillSharePercent();
    /**
     * optional float kill_share_percent = 2;
     */
    float getKillSharePercent();

    /**
     * optional float player_loc_x = 3;
     */
    boolean hasPlayerLocX();
    /**
     * optional float player_loc_x = 3;
     */
    float getPlayerLocX();

    /**
     * optional float player_loc_y = 4;
     */
    boolean hasPlayerLocY();
    /**
     * optional float player_loc_y = 4;
     */
    float getPlayerLocY();

    /**
     * optional float health_percent = 5;
     */
    boolean hasHealthPercent();
    /**
     * optional float health_percent = 5;
     */
    float getHealthPercent();

    /**
     * optional float mana_percent = 6;
     */
    boolean hasManaPercent();
    /**
     * optional float mana_percent = 6;
     */
    float getManaPercent();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_StatsPlayerKillShare}
   */
  public static final class CDOTAUserMsg_StatsPlayerKillShare extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_StatsPlayerKillShare)
      CDOTAUserMsg_StatsPlayerKillShareOrBuilder {
    // Use CDOTAUserMsg_StatsPlayerKillShare.newBuilder() to construct.
    private CDOTAUserMsg_StatsPlayerKillShare(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_StatsPlayerKillShare(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_StatsPlayerKillShare defaultInstance;
    public static CDOTAUserMsg_StatsPlayerKillShare getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_StatsPlayerKillShare getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_StatsPlayerKillShare(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              playerId_ = input.readInt32();
              break;
            }
            case 21: {
              bitField0_ |= 0x00000002;
              killSharePercent_ = input.readFloat();
              break;
            }
            case 29: {
              bitField0_ |= 0x00000004;
              playerLocX_ = input.readFloat();
              break;
            }
            case 37: {
              bitField0_ |= 0x00000008;
              playerLocY_ = input.readFloat();
              break;
            }
            case 45: {
              bitField0_ |= 0x00000010;
              healthPercent_ = input.readFloat();
              break;
            }
            case 53: {
              bitField0_ |= 0x00000020;
              manaPercent_ = input.readFloat();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_StatsPlayerKillShare_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_StatsPlayerKillShare_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsPlayerKillShare.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsPlayerKillShare.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_StatsPlayerKillShare parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_StatsPlayerKillShare(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int PLAYER_ID_FIELD_NUMBER = 1;
    private int playerId_;
    /**
     * optional int32 player_id = 1;
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 player_id = 1;
     */
    public int getPlayerId() {
      return playerId_;
    }

    public static final int KILL_SHARE_PERCENT_FIELD_NUMBER = 2;
    private float killSharePercent_;
    /**
     * optional float kill_share_percent = 2;
     */
    public boolean hasKillSharePercent() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional float kill_share_percent = 2;
     */
    public float getKillSharePercent() {
      return killSharePercent_;
    }

    public static final int PLAYER_LOC_X_FIELD_NUMBER = 3;
    private float playerLocX_;
    /**
     * optional float player_loc_x = 3;
     */
    public boolean hasPlayerLocX() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional float player_loc_x = 3;
     */
    public float getPlayerLocX() {
      return playerLocX_;
    }

    public static final int PLAYER_LOC_Y_FIELD_NUMBER = 4;
    private float playerLocY_;
    /**
     * optional float player_loc_y = 4;
     */
    public boolean hasPlayerLocY() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional float player_loc_y = 4;
     */
    public float getPlayerLocY() {
      return playerLocY_;
    }

    public static final int HEALTH_PERCENT_FIELD_NUMBER = 5;
    private float healthPercent_;
    /**
     * optional float health_percent = 5;
     */
    public boolean hasHealthPercent() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * optional float health_percent = 5;
     */
    public float getHealthPercent() {
      return healthPercent_;
    }

    public static final int MANA_PERCENT_FIELD_NUMBER = 6;
    private float manaPercent_;
    /**
     * optional float mana_percent = 6;
     */
    public boolean hasManaPercent() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     * optional float mana_percent = 6;
     */
    public float getManaPercent() {
      return manaPercent_;
    }

    private void initFields() {
      playerId_ = 0;
      killSharePercent_ = 0F;
      playerLocX_ = 0F;
      playerLocY_ = 0F;
      healthPercent_ = 0F;
      manaPercent_ = 0F;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeFloat(2, killSharePercent_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeFloat(3, playerLocX_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeFloat(4, playerLocY_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeFloat(5, healthPercent_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeFloat(6, manaPercent_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(2, killSharePercent_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(3, playerLocX_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(4, playerLocY_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(5, healthPercent_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(6, manaPercent_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsPlayerKillShare parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsPlayerKillShare parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsPlayerKillShare parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsPlayerKillShare parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsPlayerKillShare parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsPlayerKillShare parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsPlayerKillShare parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsPlayerKillShare parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsPlayerKillShare parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsPlayerKillShare parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsPlayerKillShare prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_StatsPlayerKillShare}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_StatsPlayerKillShare)
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsPlayerKillShareOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_StatsPlayerKillShare_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_StatsPlayerKillShare_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsPlayerKillShare.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsPlayerKillShare.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsPlayerKillShare.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        killSharePercent_ = 0F;
        bitField0_ = (bitField0_ & ~0x00000002);
        playerLocX_ = 0F;
        bitField0_ = (bitField0_ & ~0x00000004);
        playerLocY_ = 0F;
        bitField0_ = (bitField0_ & ~0x00000008);
        healthPercent_ = 0F;
        bitField0_ = (bitField0_ & ~0x00000010);
        manaPercent_ = 0F;
        bitField0_ = (bitField0_ & ~0x00000020);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_StatsPlayerKillShare_descriptor;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsPlayerKillShare getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsPlayerKillShare.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsPlayerKillShare build() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsPlayerKillShare result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsPlayerKillShare buildPartial() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsPlayerKillShare result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsPlayerKillShare(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.playerId_ = playerId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.killSharePercent_ = killSharePercent_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.playerLocX_ = playerLocX_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.playerLocY_ = playerLocY_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.healthPercent_ = healthPercent_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        result.manaPercent_ = manaPercent_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsPlayerKillShare) {
          return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsPlayerKillShare)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsPlayerKillShare other) {
        if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsPlayerKillShare.getDefaultInstance()) return this;
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        if (other.hasKillSharePercent()) {
          setKillSharePercent(other.getKillSharePercent());
        }
        if (other.hasPlayerLocX()) {
          setPlayerLocX(other.getPlayerLocX());
        }
        if (other.hasPlayerLocY()) {
          setPlayerLocY(other.getPlayerLocY());
        }
        if (other.hasHealthPercent()) {
          setHealthPercent(other.getHealthPercent());
        }
        if (other.hasManaPercent()) {
          setManaPercent(other.getManaPercent());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsPlayerKillShare parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsPlayerKillShare) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int playerId_ ;
      /**
       * optional int32 player_id = 1;
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 player_id = 1;
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * optional int32 player_id = 1;
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000001;
        playerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 player_id = 1;
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        onChanged();
        return this;
      }

      private float killSharePercent_ ;
      /**
       * optional float kill_share_percent = 2;
       */
      public boolean hasKillSharePercent() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional float kill_share_percent = 2;
       */
      public float getKillSharePercent() {
        return killSharePercent_;
      }
      /**
       * optional float kill_share_percent = 2;
       */
      public Builder setKillSharePercent(float value) {
        bitField0_ |= 0x00000002;
        killSharePercent_ = value;
        onChanged();
        return this;
      }
      /**
       * optional float kill_share_percent = 2;
       */
      public Builder clearKillSharePercent() {
        bitField0_ = (bitField0_ & ~0x00000002);
        killSharePercent_ = 0F;
        onChanged();
        return this;
      }

      private float playerLocX_ ;
      /**
       * optional float player_loc_x = 3;
       */
      public boolean hasPlayerLocX() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional float player_loc_x = 3;
       */
      public float getPlayerLocX() {
        return playerLocX_;
      }
      /**
       * optional float player_loc_x = 3;
       */
      public Builder setPlayerLocX(float value) {
        bitField0_ |= 0x00000004;
        playerLocX_ = value;
        onChanged();
        return this;
      }
      /**
       * optional float player_loc_x = 3;
       */
      public Builder clearPlayerLocX() {
        bitField0_ = (bitField0_ & ~0x00000004);
        playerLocX_ = 0F;
        onChanged();
        return this;
      }

      private float playerLocY_ ;
      /**
       * optional float player_loc_y = 4;
       */
      public boolean hasPlayerLocY() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional float player_loc_y = 4;
       */
      public float getPlayerLocY() {
        return playerLocY_;
      }
      /**
       * optional float player_loc_y = 4;
       */
      public Builder setPlayerLocY(float value) {
        bitField0_ |= 0x00000008;
        playerLocY_ = value;
        onChanged();
        return this;
      }
      /**
       * optional float player_loc_y = 4;
       */
      public Builder clearPlayerLocY() {
        bitField0_ = (bitField0_ & ~0x00000008);
        playerLocY_ = 0F;
        onChanged();
        return this;
      }

      private float healthPercent_ ;
      /**
       * optional float health_percent = 5;
       */
      public boolean hasHealthPercent() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * optional float health_percent = 5;
       */
      public float getHealthPercent() {
        return healthPercent_;
      }
      /**
       * optional float health_percent = 5;
       */
      public Builder setHealthPercent(float value) {
        bitField0_ |= 0x00000010;
        healthPercent_ = value;
        onChanged();
        return this;
      }
      /**
       * optional float health_percent = 5;
       */
      public Builder clearHealthPercent() {
        bitField0_ = (bitField0_ & ~0x00000010);
        healthPercent_ = 0F;
        onChanged();
        return this;
      }

      private float manaPercent_ ;
      /**
       * optional float mana_percent = 6;
       */
      public boolean hasManaPercent() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * optional float mana_percent = 6;
       */
      public float getManaPercent() {
        return manaPercent_;
      }
      /**
       * optional float mana_percent = 6;
       */
      public Builder setManaPercent(float value) {
        bitField0_ |= 0x00000020;
        manaPercent_ = value;
        onChanged();
        return this;
      }
      /**
       * optional float mana_percent = 6;
       */
      public Builder clearManaPercent() {
        bitField0_ = (bitField0_ & ~0x00000020);
        manaPercent_ = 0F;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_StatsPlayerKillShare)
    }

    static {
      defaultInstance = new CDOTAUserMsg_StatsPlayerKillShare(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_StatsPlayerKillShare)
  }

  public interface CDOTAUserMsg_StatsKillDetailsOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_StatsKillDetails)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional uint32 victim_id = 1;
     */
    boolean hasVictimId();
    /**
     * optional uint32 victim_id = 1;
     */
    int getVictimId();

    /**
     * repeated .CDOTAUserMsg_StatsPlayerKillShare kill_shares = 2;
     */
    java.util.List 
        getKillSharesList();
    /**
     * repeated .CDOTAUserMsg_StatsPlayerKillShare kill_shares = 2;
     */
    skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsPlayerKillShare getKillShares(int index);
    /**
     * repeated .CDOTAUserMsg_StatsPlayerKillShare kill_shares = 2;
     */
    int getKillSharesCount();
    /**
     * repeated .CDOTAUserMsg_StatsPlayerKillShare kill_shares = 2;
     */
    java.util.List 
        getKillSharesOrBuilderList();
    /**
     * repeated .CDOTAUserMsg_StatsPlayerKillShare kill_shares = 2;
     */
    skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsPlayerKillShareOrBuilder getKillSharesOrBuilder(
        int index);

    /**
     * optional uint32 damage_to_kill = 3;
     */
    boolean hasDamageToKill();
    /**
     * optional uint32 damage_to_kill = 3;
     */
    int getDamageToKill();

    /**
     * optional uint32 effective_health = 4;
     */
    boolean hasEffectiveHealth();
    /**
     * optional uint32 effective_health = 4;
     */
    int getEffectiveHealth();

    /**
     * optional float death_time = 5;
     */
    boolean hasDeathTime();
    /**
     * optional float death_time = 5;
     */
    float getDeathTime();

    /**
     * optional uint32 killer_id = 6;
     */
    boolean hasKillerId();
    /**
     * optional uint32 killer_id = 6;
     */
    int getKillerId();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_StatsKillDetails}
   */
  public static final class CDOTAUserMsg_StatsKillDetails extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_StatsKillDetails)
      CDOTAUserMsg_StatsKillDetailsOrBuilder {
    // Use CDOTAUserMsg_StatsKillDetails.newBuilder() to construct.
    private CDOTAUserMsg_StatsKillDetails(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_StatsKillDetails(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_StatsKillDetails defaultInstance;
    public static CDOTAUserMsg_StatsKillDetails getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_StatsKillDetails getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_StatsKillDetails(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              victimId_ = input.readUInt32();
              break;
            }
            case 18: {
              if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                killShares_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000002;
              }
              killShares_.add(input.readMessage(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsPlayerKillShare.PARSER, extensionRegistry));
              break;
            }
            case 24: {
              bitField0_ |= 0x00000002;
              damageToKill_ = input.readUInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000004;
              effectiveHealth_ = input.readUInt32();
              break;
            }
            case 45: {
              bitField0_ |= 0x00000008;
              deathTime_ = input.readFloat();
              break;
            }
            case 48: {
              bitField0_ |= 0x00000010;
              killerId_ = input.readUInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
          killShares_ = java.util.Collections.unmodifiableList(killShares_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_StatsKillDetails_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_StatsKillDetails_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsKillDetails.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsKillDetails.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_StatsKillDetails parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_StatsKillDetails(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int VICTIM_ID_FIELD_NUMBER = 1;
    private int victimId_;
    /**
     * optional uint32 victim_id = 1;
     */
    public boolean hasVictimId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional uint32 victim_id = 1;
     */
    public int getVictimId() {
      return victimId_;
    }

    public static final int KILL_SHARES_FIELD_NUMBER = 2;
    private java.util.List killShares_;
    /**
     * repeated .CDOTAUserMsg_StatsPlayerKillShare kill_shares = 2;
     */
    public java.util.List getKillSharesList() {
      return killShares_;
    }
    /**
     * repeated .CDOTAUserMsg_StatsPlayerKillShare kill_shares = 2;
     */
    public java.util.List 
        getKillSharesOrBuilderList() {
      return killShares_;
    }
    /**
     * repeated .CDOTAUserMsg_StatsPlayerKillShare kill_shares = 2;
     */
    public int getKillSharesCount() {
      return killShares_.size();
    }
    /**
     * repeated .CDOTAUserMsg_StatsPlayerKillShare kill_shares = 2;
     */
    public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsPlayerKillShare getKillShares(int index) {
      return killShares_.get(index);
    }
    /**
     * repeated .CDOTAUserMsg_StatsPlayerKillShare kill_shares = 2;
     */
    public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsPlayerKillShareOrBuilder getKillSharesOrBuilder(
        int index) {
      return killShares_.get(index);
    }

    public static final int DAMAGE_TO_KILL_FIELD_NUMBER = 3;
    private int damageToKill_;
    /**
     * optional uint32 damage_to_kill = 3;
     */
    public boolean hasDamageToKill() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional uint32 damage_to_kill = 3;
     */
    public int getDamageToKill() {
      return damageToKill_;
    }

    public static final int EFFECTIVE_HEALTH_FIELD_NUMBER = 4;
    private int effectiveHealth_;
    /**
     * optional uint32 effective_health = 4;
     */
    public boolean hasEffectiveHealth() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional uint32 effective_health = 4;
     */
    public int getEffectiveHealth() {
      return effectiveHealth_;
    }

    public static final int DEATH_TIME_FIELD_NUMBER = 5;
    private float deathTime_;
    /**
     * optional float death_time = 5;
     */
    public boolean hasDeathTime() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional float death_time = 5;
     */
    public float getDeathTime() {
      return deathTime_;
    }

    public static final int KILLER_ID_FIELD_NUMBER = 6;
    private int killerId_;
    /**
     * optional uint32 killer_id = 6;
     */
    public boolean hasKillerId() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * optional uint32 killer_id = 6;
     */
    public int getKillerId() {
      return killerId_;
    }

    private void initFields() {
      victimId_ = 0;
      killShares_ = java.util.Collections.emptyList();
      damageToKill_ = 0;
      effectiveHealth_ = 0;
      deathTime_ = 0F;
      killerId_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, victimId_);
      }
      for (int i = 0; i < killShares_.size(); i++) {
        output.writeMessage(2, killShares_.get(i));
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(3, damageToKill_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeUInt32(4, effectiveHealth_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeFloat(5, deathTime_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeUInt32(6, killerId_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, victimId_);
      }
      for (int i = 0; i < killShares_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, killShares_.get(i));
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, damageToKill_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(4, effectiveHealth_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(5, deathTime_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(6, killerId_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsKillDetails parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsKillDetails parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsKillDetails parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsKillDetails parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsKillDetails parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsKillDetails parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsKillDetails parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsKillDetails parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsKillDetails parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsKillDetails parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsKillDetails prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_StatsKillDetails}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_StatsKillDetails)
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsKillDetailsOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_StatsKillDetails_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_StatsKillDetails_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsKillDetails.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsKillDetails.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsKillDetails.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getKillSharesFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        victimId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        if (killSharesBuilder_ == null) {
          killShares_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
        } else {
          killSharesBuilder_.clear();
        }
        damageToKill_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        effectiveHealth_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        deathTime_ = 0F;
        bitField0_ = (bitField0_ & ~0x00000010);
        killerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000020);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_StatsKillDetails_descriptor;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsKillDetails getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsKillDetails.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsKillDetails build() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsKillDetails result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsKillDetails buildPartial() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsKillDetails result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsKillDetails(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.victimId_ = victimId_;
        if (killSharesBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            killShares_ = java.util.Collections.unmodifiableList(killShares_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.killShares_ = killShares_;
        } else {
          result.killShares_ = killSharesBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000002;
        }
        result.damageToKill_ = damageToKill_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000004;
        }
        result.effectiveHealth_ = effectiveHealth_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000008;
        }
        result.deathTime_ = deathTime_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000010;
        }
        result.killerId_ = killerId_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsKillDetails) {
          return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsKillDetails)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsKillDetails other) {
        if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsKillDetails.getDefaultInstance()) return this;
        if (other.hasVictimId()) {
          setVictimId(other.getVictimId());
        }
        if (killSharesBuilder_ == null) {
          if (!other.killShares_.isEmpty()) {
            if (killShares_.isEmpty()) {
              killShares_ = other.killShares_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensureKillSharesIsMutable();
              killShares_.addAll(other.killShares_);
            }
            onChanged();
          }
        } else {
          if (!other.killShares_.isEmpty()) {
            if (killSharesBuilder_.isEmpty()) {
              killSharesBuilder_.dispose();
              killSharesBuilder_ = null;
              killShares_ = other.killShares_;
              bitField0_ = (bitField0_ & ~0x00000002);
              killSharesBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getKillSharesFieldBuilder() : null;
            } else {
              killSharesBuilder_.addAllMessages(other.killShares_);
            }
          }
        }
        if (other.hasDamageToKill()) {
          setDamageToKill(other.getDamageToKill());
        }
        if (other.hasEffectiveHealth()) {
          setEffectiveHealth(other.getEffectiveHealth());
        }
        if (other.hasDeathTime()) {
          setDeathTime(other.getDeathTime());
        }
        if (other.hasKillerId()) {
          setKillerId(other.getKillerId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsKillDetails parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsKillDetails) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int victimId_ ;
      /**
       * optional uint32 victim_id = 1;
       */
      public boolean hasVictimId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional uint32 victim_id = 1;
       */
      public int getVictimId() {
        return victimId_;
      }
      /**
       * optional uint32 victim_id = 1;
       */
      public Builder setVictimId(int value) {
        bitField0_ |= 0x00000001;
        victimId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 victim_id = 1;
       */
      public Builder clearVictimId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        victimId_ = 0;
        onChanged();
        return this;
      }

      private java.util.List killShares_ =
        java.util.Collections.emptyList();
      private void ensureKillSharesIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          killShares_ = new java.util.ArrayList(killShares_);
          bitField0_ |= 0x00000002;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsPlayerKillShare, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsPlayerKillShare.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsPlayerKillShareOrBuilder> killSharesBuilder_;

      /**
       * repeated .CDOTAUserMsg_StatsPlayerKillShare kill_shares = 2;
       */
      public java.util.List getKillSharesList() {
        if (killSharesBuilder_ == null) {
          return java.util.Collections.unmodifiableList(killShares_);
        } else {
          return killSharesBuilder_.getMessageList();
        }
      }
      /**
       * repeated .CDOTAUserMsg_StatsPlayerKillShare kill_shares = 2;
       */
      public int getKillSharesCount() {
        if (killSharesBuilder_ == null) {
          return killShares_.size();
        } else {
          return killSharesBuilder_.getCount();
        }
      }
      /**
       * repeated .CDOTAUserMsg_StatsPlayerKillShare kill_shares = 2;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsPlayerKillShare getKillShares(int index) {
        if (killSharesBuilder_ == null) {
          return killShares_.get(index);
        } else {
          return killSharesBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .CDOTAUserMsg_StatsPlayerKillShare kill_shares = 2;
       */
      public Builder setKillShares(
          int index, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsPlayerKillShare value) {
        if (killSharesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureKillSharesIsMutable();
          killShares_.set(index, value);
          onChanged();
        } else {
          killSharesBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_StatsPlayerKillShare kill_shares = 2;
       */
      public Builder setKillShares(
          int index, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsPlayerKillShare.Builder builderForValue) {
        if (killSharesBuilder_ == null) {
          ensureKillSharesIsMutable();
          killShares_.set(index, builderForValue.build());
          onChanged();
        } else {
          killSharesBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_StatsPlayerKillShare kill_shares = 2;
       */
      public Builder addKillShares(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsPlayerKillShare value) {
        if (killSharesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureKillSharesIsMutable();
          killShares_.add(value);
          onChanged();
        } else {
          killSharesBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_StatsPlayerKillShare kill_shares = 2;
       */
      public Builder addKillShares(
          int index, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsPlayerKillShare value) {
        if (killSharesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureKillSharesIsMutable();
          killShares_.add(index, value);
          onChanged();
        } else {
          killSharesBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_StatsPlayerKillShare kill_shares = 2;
       */
      public Builder addKillShares(
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsPlayerKillShare.Builder builderForValue) {
        if (killSharesBuilder_ == null) {
          ensureKillSharesIsMutable();
          killShares_.add(builderForValue.build());
          onChanged();
        } else {
          killSharesBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_StatsPlayerKillShare kill_shares = 2;
       */
      public Builder addKillShares(
          int index, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsPlayerKillShare.Builder builderForValue) {
        if (killSharesBuilder_ == null) {
          ensureKillSharesIsMutable();
          killShares_.add(index, builderForValue.build());
          onChanged();
        } else {
          killSharesBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_StatsPlayerKillShare kill_shares = 2;
       */
      public Builder addAllKillShares(
          java.lang.Iterable values) {
        if (killSharesBuilder_ == null) {
          ensureKillSharesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, killShares_);
          onChanged();
        } else {
          killSharesBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_StatsPlayerKillShare kill_shares = 2;
       */
      public Builder clearKillShares() {
        if (killSharesBuilder_ == null) {
          killShares_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          killSharesBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_StatsPlayerKillShare kill_shares = 2;
       */
      public Builder removeKillShares(int index) {
        if (killSharesBuilder_ == null) {
          ensureKillSharesIsMutable();
          killShares_.remove(index);
          onChanged();
        } else {
          killSharesBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_StatsPlayerKillShare kill_shares = 2;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsPlayerKillShare.Builder getKillSharesBuilder(
          int index) {
        return getKillSharesFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .CDOTAUserMsg_StatsPlayerKillShare kill_shares = 2;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsPlayerKillShareOrBuilder getKillSharesOrBuilder(
          int index) {
        if (killSharesBuilder_ == null) {
          return killShares_.get(index);  } else {
          return killSharesBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .CDOTAUserMsg_StatsPlayerKillShare kill_shares = 2;
       */
      public java.util.List 
           getKillSharesOrBuilderList() {
        if (killSharesBuilder_ != null) {
          return killSharesBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(killShares_);
        }
      }
      /**
       * repeated .CDOTAUserMsg_StatsPlayerKillShare kill_shares = 2;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsPlayerKillShare.Builder addKillSharesBuilder() {
        return getKillSharesFieldBuilder().addBuilder(
            skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsPlayerKillShare.getDefaultInstance());
      }
      /**
       * repeated .CDOTAUserMsg_StatsPlayerKillShare kill_shares = 2;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsPlayerKillShare.Builder addKillSharesBuilder(
          int index) {
        return getKillSharesFieldBuilder().addBuilder(
            index, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsPlayerKillShare.getDefaultInstance());
      }
      /**
       * repeated .CDOTAUserMsg_StatsPlayerKillShare kill_shares = 2;
       */
      public java.util.List 
           getKillSharesBuilderList() {
        return getKillSharesFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsPlayerKillShare, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsPlayerKillShare.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsPlayerKillShareOrBuilder> 
          getKillSharesFieldBuilder() {
        if (killSharesBuilder_ == null) {
          killSharesBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsPlayerKillShare, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsPlayerKillShare.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_StatsPlayerKillShareOrBuilder>(
                  killShares_,
                  ((bitField0_ & 0x00000002) == 0x00000002),
                  getParentForChildren(),
                  isClean());
          killShares_ = null;
        }
        return killSharesBuilder_;
      }

      private int damageToKill_ ;
      /**
       * optional uint32 damage_to_kill = 3;
       */
      public boolean hasDamageToKill() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional uint32 damage_to_kill = 3;
       */
      public int getDamageToKill() {
        return damageToKill_;
      }
      /**
       * optional uint32 damage_to_kill = 3;
       */
      public Builder setDamageToKill(int value) {
        bitField0_ |= 0x00000004;
        damageToKill_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 damage_to_kill = 3;
       */
      public Builder clearDamageToKill() {
        bitField0_ = (bitField0_ & ~0x00000004);
        damageToKill_ = 0;
        onChanged();
        return this;
      }

      private int effectiveHealth_ ;
      /**
       * optional uint32 effective_health = 4;
       */
      public boolean hasEffectiveHealth() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional uint32 effective_health = 4;
       */
      public int getEffectiveHealth() {
        return effectiveHealth_;
      }
      /**
       * optional uint32 effective_health = 4;
       */
      public Builder setEffectiveHealth(int value) {
        bitField0_ |= 0x00000008;
        effectiveHealth_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 effective_health = 4;
       */
      public Builder clearEffectiveHealth() {
        bitField0_ = (bitField0_ & ~0x00000008);
        effectiveHealth_ = 0;
        onChanged();
        return this;
      }

      private float deathTime_ ;
      /**
       * optional float death_time = 5;
       */
      public boolean hasDeathTime() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * optional float death_time = 5;
       */
      public float getDeathTime() {
        return deathTime_;
      }
      /**
       * optional float death_time = 5;
       */
      public Builder setDeathTime(float value) {
        bitField0_ |= 0x00000010;
        deathTime_ = value;
        onChanged();
        return this;
      }
      /**
       * optional float death_time = 5;
       */
      public Builder clearDeathTime() {
        bitField0_ = (bitField0_ & ~0x00000010);
        deathTime_ = 0F;
        onChanged();
        return this;
      }

      private int killerId_ ;
      /**
       * optional uint32 killer_id = 6;
       */
      public boolean hasKillerId() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * optional uint32 killer_id = 6;
       */
      public int getKillerId() {
        return killerId_;
      }
      /**
       * optional uint32 killer_id = 6;
       */
      public Builder setKillerId(int value) {
        bitField0_ |= 0x00000020;
        killerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 killer_id = 6;
       */
      public Builder clearKillerId() {
        bitField0_ = (bitField0_ & ~0x00000020);
        killerId_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_StatsKillDetails)
    }

    static {
      defaultInstance = new CDOTAUserMsg_StatsKillDetails(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_StatsKillDetails)
  }

  public interface CMsgHeroAbilityStatOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CMsgHeroAbilityStat)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional .EHeroStatType stat_type = 1 [default = k_EHeroStatType_None];
     */
    boolean hasStatType();
    /**
     * optional .EHeroStatType stat_type = 1 [default = k_EHeroStatType_None];
     */
    skadistats.clarity.wire.common.proto.DotaUserMessages.EHeroStatType getStatType();

    /**
     * optional int32 int_value = 2;
     */
    boolean hasIntValue();
    /**
     * optional int32 int_value = 2;
     */
    int getIntValue();

    /**
     * optional float float_value = 3;
     */
    boolean hasFloatValue();
    /**
     * optional float float_value = 3;
     */
    float getFloatValue();
  }
  /**
   * Protobuf type {@code CMsgHeroAbilityStat}
   */
  public static final class CMsgHeroAbilityStat extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CMsgHeroAbilityStat)
      CMsgHeroAbilityStatOrBuilder {
    // Use CMsgHeroAbilityStat.newBuilder() to construct.
    private CMsgHeroAbilityStat(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CMsgHeroAbilityStat(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CMsgHeroAbilityStat defaultInstance;
    public static CMsgHeroAbilityStat getDefaultInstance() {
      return defaultInstance;
    }

    public CMsgHeroAbilityStat getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CMsgHeroAbilityStat(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              int rawValue = input.readEnum();
              skadistats.clarity.wire.common.proto.DotaUserMessages.EHeroStatType value = skadistats.clarity.wire.common.proto.DotaUserMessages.EHeroStatType.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(1, rawValue);
              } else {
                bitField0_ |= 0x00000001;
                statType_ = value;
              }
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              intValue_ = input.readInt32();
              break;
            }
            case 29: {
              bitField0_ |= 0x00000004;
              floatValue_ = input.readFloat();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CMsgHeroAbilityStat_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CMsgHeroAbilityStat_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgHeroAbilityStat.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgHeroAbilityStat.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CMsgHeroAbilityStat parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CMsgHeroAbilityStat(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int STAT_TYPE_FIELD_NUMBER = 1;
    private skadistats.clarity.wire.common.proto.DotaUserMessages.EHeroStatType statType_;
    /**
     * optional .EHeroStatType stat_type = 1 [default = k_EHeroStatType_None];
     */
    public boolean hasStatType() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional .EHeroStatType stat_type = 1 [default = k_EHeroStatType_None];
     */
    public skadistats.clarity.wire.common.proto.DotaUserMessages.EHeroStatType getStatType() {
      return statType_;
    }

    public static final int INT_VALUE_FIELD_NUMBER = 2;
    private int intValue_;
    /**
     * optional int32 int_value = 2;
     */
    public boolean hasIntValue() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional int32 int_value = 2;
     */
    public int getIntValue() {
      return intValue_;
    }

    public static final int FLOAT_VALUE_FIELD_NUMBER = 3;
    private float floatValue_;
    /**
     * optional float float_value = 3;
     */
    public boolean hasFloatValue() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional float float_value = 3;
     */
    public float getFloatValue() {
      return floatValue_;
    }

    private void initFields() {
      statType_ = skadistats.clarity.wire.common.proto.DotaUserMessages.EHeroStatType.k_EHeroStatType_None;
      intValue_ = 0;
      floatValue_ = 0F;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeEnum(1, statType_.getNumber());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, intValue_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeFloat(3, floatValue_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(1, statType_.getNumber());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, intValue_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(3, floatValue_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgHeroAbilityStat parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgHeroAbilityStat parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgHeroAbilityStat parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgHeroAbilityStat parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgHeroAbilityStat parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgHeroAbilityStat parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgHeroAbilityStat parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgHeroAbilityStat parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgHeroAbilityStat parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgHeroAbilityStat parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgHeroAbilityStat prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CMsgHeroAbilityStat}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CMsgHeroAbilityStat)
        skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgHeroAbilityStatOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CMsgHeroAbilityStat_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CMsgHeroAbilityStat_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgHeroAbilityStat.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgHeroAbilityStat.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgHeroAbilityStat.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        statType_ = skadistats.clarity.wire.common.proto.DotaUserMessages.EHeroStatType.k_EHeroStatType_None;
        bitField0_ = (bitField0_ & ~0x00000001);
        intValue_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        floatValue_ = 0F;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CMsgHeroAbilityStat_descriptor;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgHeroAbilityStat getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgHeroAbilityStat.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgHeroAbilityStat build() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgHeroAbilityStat result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgHeroAbilityStat buildPartial() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgHeroAbilityStat result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgHeroAbilityStat(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.statType_ = statType_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.intValue_ = intValue_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.floatValue_ = floatValue_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgHeroAbilityStat) {
          return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgHeroAbilityStat)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgHeroAbilityStat other) {
        if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgHeroAbilityStat.getDefaultInstance()) return this;
        if (other.hasStatType()) {
          setStatType(other.getStatType());
        }
        if (other.hasIntValue()) {
          setIntValue(other.getIntValue());
        }
        if (other.hasFloatValue()) {
          setFloatValue(other.getFloatValue());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgHeroAbilityStat parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgHeroAbilityStat) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private skadistats.clarity.wire.common.proto.DotaUserMessages.EHeroStatType statType_ = skadistats.clarity.wire.common.proto.DotaUserMessages.EHeroStatType.k_EHeroStatType_None;
      /**
       * optional .EHeroStatType stat_type = 1 [default = k_EHeroStatType_None];
       */
      public boolean hasStatType() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional .EHeroStatType stat_type = 1 [default = k_EHeroStatType_None];
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.EHeroStatType getStatType() {
        return statType_;
      }
      /**
       * optional .EHeroStatType stat_type = 1 [default = k_EHeroStatType_None];
       */
      public Builder setStatType(skadistats.clarity.wire.common.proto.DotaUserMessages.EHeroStatType value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        statType_ = value;
        onChanged();
        return this;
      }
      /**
       * optional .EHeroStatType stat_type = 1 [default = k_EHeroStatType_None];
       */
      public Builder clearStatType() {
        bitField0_ = (bitField0_ & ~0x00000001);
        statType_ = skadistats.clarity.wire.common.proto.DotaUserMessages.EHeroStatType.k_EHeroStatType_None;
        onChanged();
        return this;
      }

      private int intValue_ ;
      /**
       * optional int32 int_value = 2;
       */
      public boolean hasIntValue() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional int32 int_value = 2;
       */
      public int getIntValue() {
        return intValue_;
      }
      /**
       * optional int32 int_value = 2;
       */
      public Builder setIntValue(int value) {
        bitField0_ |= 0x00000002;
        intValue_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 int_value = 2;
       */
      public Builder clearIntValue() {
        bitField0_ = (bitField0_ & ~0x00000002);
        intValue_ = 0;
        onChanged();
        return this;
      }

      private float floatValue_ ;
      /**
       * optional float float_value = 3;
       */
      public boolean hasFloatValue() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional float float_value = 3;
       */
      public float getFloatValue() {
        return floatValue_;
      }
      /**
       * optional float float_value = 3;
       */
      public Builder setFloatValue(float value) {
        bitField0_ |= 0x00000004;
        floatValue_ = value;
        onChanged();
        return this;
      }
      /**
       * optional float float_value = 3;
       */
      public Builder clearFloatValue() {
        bitField0_ = (bitField0_ & ~0x00000004);
        floatValue_ = 0F;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CMsgHeroAbilityStat)
    }

    static {
      defaultInstance = new CMsgHeroAbilityStat(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CMsgHeroAbilityStat)
  }

  public interface CMsgCombatAnalyzerPlayerStatOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CMsgCombatAnalyzerPlayerStat)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional uint32 account_id = 1;
     */
    boolean hasAccountId();
    /**
     * optional uint32 account_id = 1;
     */
    int getAccountId();

    /**
     * repeated .CMsgHeroAbilityStat hero_ability_stats = 2;
     */
    java.util.List 
        getHeroAbilityStatsList();
    /**
     * repeated .CMsgHeroAbilityStat hero_ability_stats = 2;
     */
    skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgHeroAbilityStat getHeroAbilityStats(int index);
    /**
     * repeated .CMsgHeroAbilityStat hero_ability_stats = 2;
     */
    int getHeroAbilityStatsCount();
    /**
     * repeated .CMsgHeroAbilityStat hero_ability_stats = 2;
     */
    java.util.List 
        getHeroAbilityStatsOrBuilderList();
    /**
     * repeated .CMsgHeroAbilityStat hero_ability_stats = 2;
     */
    skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgHeroAbilityStatOrBuilder getHeroAbilityStatsOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code CMsgCombatAnalyzerPlayerStat}
   */
  public static final class CMsgCombatAnalyzerPlayerStat extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CMsgCombatAnalyzerPlayerStat)
      CMsgCombatAnalyzerPlayerStatOrBuilder {
    // Use CMsgCombatAnalyzerPlayerStat.newBuilder() to construct.
    private CMsgCombatAnalyzerPlayerStat(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CMsgCombatAnalyzerPlayerStat(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CMsgCombatAnalyzerPlayerStat defaultInstance;
    public static CMsgCombatAnalyzerPlayerStat getDefaultInstance() {
      return defaultInstance;
    }

    public CMsgCombatAnalyzerPlayerStat getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CMsgCombatAnalyzerPlayerStat(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              accountId_ = input.readUInt32();
              break;
            }
            case 18: {
              if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                heroAbilityStats_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000002;
              }
              heroAbilityStats_.add(input.readMessage(skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgHeroAbilityStat.PARSER, extensionRegistry));
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
          heroAbilityStats_ = java.util.Collections.unmodifiableList(heroAbilityStats_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CMsgCombatAnalyzerPlayerStat_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CMsgCombatAnalyzerPlayerStat_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgCombatAnalyzerPlayerStat.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgCombatAnalyzerPlayerStat.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CMsgCombatAnalyzerPlayerStat parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CMsgCombatAnalyzerPlayerStat(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int ACCOUNT_ID_FIELD_NUMBER = 1;
    private int accountId_;
    /**
     * optional uint32 account_id = 1;
     */
    public boolean hasAccountId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional uint32 account_id = 1;
     */
    public int getAccountId() {
      return accountId_;
    }

    public static final int HERO_ABILITY_STATS_FIELD_NUMBER = 2;
    private java.util.List heroAbilityStats_;
    /**
     * repeated .CMsgHeroAbilityStat hero_ability_stats = 2;
     */
    public java.util.List getHeroAbilityStatsList() {
      return heroAbilityStats_;
    }
    /**
     * repeated .CMsgHeroAbilityStat hero_ability_stats = 2;
     */
    public java.util.List 
        getHeroAbilityStatsOrBuilderList() {
      return heroAbilityStats_;
    }
    /**
     * repeated .CMsgHeroAbilityStat hero_ability_stats = 2;
     */
    public int getHeroAbilityStatsCount() {
      return heroAbilityStats_.size();
    }
    /**
     * repeated .CMsgHeroAbilityStat hero_ability_stats = 2;
     */
    public skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgHeroAbilityStat getHeroAbilityStats(int index) {
      return heroAbilityStats_.get(index);
    }
    /**
     * repeated .CMsgHeroAbilityStat hero_ability_stats = 2;
     */
    public skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgHeroAbilityStatOrBuilder getHeroAbilityStatsOrBuilder(
        int index) {
      return heroAbilityStats_.get(index);
    }

    private void initFields() {
      accountId_ = 0;
      heroAbilityStats_ = java.util.Collections.emptyList();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, accountId_);
      }
      for (int i = 0; i < heroAbilityStats_.size(); i++) {
        output.writeMessage(2, heroAbilityStats_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, accountId_);
      }
      for (int i = 0; i < heroAbilityStats_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, heroAbilityStats_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgCombatAnalyzerPlayerStat parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgCombatAnalyzerPlayerStat parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgCombatAnalyzerPlayerStat parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgCombatAnalyzerPlayerStat parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgCombatAnalyzerPlayerStat parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgCombatAnalyzerPlayerStat parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgCombatAnalyzerPlayerStat parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgCombatAnalyzerPlayerStat parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgCombatAnalyzerPlayerStat parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgCombatAnalyzerPlayerStat parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgCombatAnalyzerPlayerStat prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CMsgCombatAnalyzerPlayerStat}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CMsgCombatAnalyzerPlayerStat)
        skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgCombatAnalyzerPlayerStatOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CMsgCombatAnalyzerPlayerStat_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CMsgCombatAnalyzerPlayerStat_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgCombatAnalyzerPlayerStat.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgCombatAnalyzerPlayerStat.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgCombatAnalyzerPlayerStat.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getHeroAbilityStatsFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        accountId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        if (heroAbilityStatsBuilder_ == null) {
          heroAbilityStats_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
        } else {
          heroAbilityStatsBuilder_.clear();
        }
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CMsgCombatAnalyzerPlayerStat_descriptor;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgCombatAnalyzerPlayerStat getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgCombatAnalyzerPlayerStat.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgCombatAnalyzerPlayerStat build() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgCombatAnalyzerPlayerStat result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgCombatAnalyzerPlayerStat buildPartial() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgCombatAnalyzerPlayerStat result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgCombatAnalyzerPlayerStat(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.accountId_ = accountId_;
        if (heroAbilityStatsBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            heroAbilityStats_ = java.util.Collections.unmodifiableList(heroAbilityStats_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.heroAbilityStats_ = heroAbilityStats_;
        } else {
          result.heroAbilityStats_ = heroAbilityStatsBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgCombatAnalyzerPlayerStat) {
          return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgCombatAnalyzerPlayerStat)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgCombatAnalyzerPlayerStat other) {
        if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgCombatAnalyzerPlayerStat.getDefaultInstance()) return this;
        if (other.hasAccountId()) {
          setAccountId(other.getAccountId());
        }
        if (heroAbilityStatsBuilder_ == null) {
          if (!other.heroAbilityStats_.isEmpty()) {
            if (heroAbilityStats_.isEmpty()) {
              heroAbilityStats_ = other.heroAbilityStats_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensureHeroAbilityStatsIsMutable();
              heroAbilityStats_.addAll(other.heroAbilityStats_);
            }
            onChanged();
          }
        } else {
          if (!other.heroAbilityStats_.isEmpty()) {
            if (heroAbilityStatsBuilder_.isEmpty()) {
              heroAbilityStatsBuilder_.dispose();
              heroAbilityStatsBuilder_ = null;
              heroAbilityStats_ = other.heroAbilityStats_;
              bitField0_ = (bitField0_ & ~0x00000002);
              heroAbilityStatsBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getHeroAbilityStatsFieldBuilder() : null;
            } else {
              heroAbilityStatsBuilder_.addAllMessages(other.heroAbilityStats_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgCombatAnalyzerPlayerStat parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgCombatAnalyzerPlayerStat) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int accountId_ ;
      /**
       * optional uint32 account_id = 1;
       */
      public boolean hasAccountId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional uint32 account_id = 1;
       */
      public int getAccountId() {
        return accountId_;
      }
      /**
       * optional uint32 account_id = 1;
       */
      public Builder setAccountId(int value) {
        bitField0_ |= 0x00000001;
        accountId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 account_id = 1;
       */
      public Builder clearAccountId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        accountId_ = 0;
        onChanged();
        return this;
      }

      private java.util.List heroAbilityStats_ =
        java.util.Collections.emptyList();
      private void ensureHeroAbilityStatsIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          heroAbilityStats_ = new java.util.ArrayList(heroAbilityStats_);
          bitField0_ |= 0x00000002;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgHeroAbilityStat, skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgHeroAbilityStat.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgHeroAbilityStatOrBuilder> heroAbilityStatsBuilder_;

      /**
       * repeated .CMsgHeroAbilityStat hero_ability_stats = 2;
       */
      public java.util.List getHeroAbilityStatsList() {
        if (heroAbilityStatsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(heroAbilityStats_);
        } else {
          return heroAbilityStatsBuilder_.getMessageList();
        }
      }
      /**
       * repeated .CMsgHeroAbilityStat hero_ability_stats = 2;
       */
      public int getHeroAbilityStatsCount() {
        if (heroAbilityStatsBuilder_ == null) {
          return heroAbilityStats_.size();
        } else {
          return heroAbilityStatsBuilder_.getCount();
        }
      }
      /**
       * repeated .CMsgHeroAbilityStat hero_ability_stats = 2;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgHeroAbilityStat getHeroAbilityStats(int index) {
        if (heroAbilityStatsBuilder_ == null) {
          return heroAbilityStats_.get(index);
        } else {
          return heroAbilityStatsBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .CMsgHeroAbilityStat hero_ability_stats = 2;
       */
      public Builder setHeroAbilityStats(
          int index, skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgHeroAbilityStat value) {
        if (heroAbilityStatsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureHeroAbilityStatsIsMutable();
          heroAbilityStats_.set(index, value);
          onChanged();
        } else {
          heroAbilityStatsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .CMsgHeroAbilityStat hero_ability_stats = 2;
       */
      public Builder setHeroAbilityStats(
          int index, skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgHeroAbilityStat.Builder builderForValue) {
        if (heroAbilityStatsBuilder_ == null) {
          ensureHeroAbilityStatsIsMutable();
          heroAbilityStats_.set(index, builderForValue.build());
          onChanged();
        } else {
          heroAbilityStatsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CMsgHeroAbilityStat hero_ability_stats = 2;
       */
      public Builder addHeroAbilityStats(skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgHeroAbilityStat value) {
        if (heroAbilityStatsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureHeroAbilityStatsIsMutable();
          heroAbilityStats_.add(value);
          onChanged();
        } else {
          heroAbilityStatsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .CMsgHeroAbilityStat hero_ability_stats = 2;
       */
      public Builder addHeroAbilityStats(
          int index, skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgHeroAbilityStat value) {
        if (heroAbilityStatsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureHeroAbilityStatsIsMutable();
          heroAbilityStats_.add(index, value);
          onChanged();
        } else {
          heroAbilityStatsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .CMsgHeroAbilityStat hero_ability_stats = 2;
       */
      public Builder addHeroAbilityStats(
          skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgHeroAbilityStat.Builder builderForValue) {
        if (heroAbilityStatsBuilder_ == null) {
          ensureHeroAbilityStatsIsMutable();
          heroAbilityStats_.add(builderForValue.build());
          onChanged();
        } else {
          heroAbilityStatsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CMsgHeroAbilityStat hero_ability_stats = 2;
       */
      public Builder addHeroAbilityStats(
          int index, skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgHeroAbilityStat.Builder builderForValue) {
        if (heroAbilityStatsBuilder_ == null) {
          ensureHeroAbilityStatsIsMutable();
          heroAbilityStats_.add(index, builderForValue.build());
          onChanged();
        } else {
          heroAbilityStatsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CMsgHeroAbilityStat hero_ability_stats = 2;
       */
      public Builder addAllHeroAbilityStats(
          java.lang.Iterable values) {
        if (heroAbilityStatsBuilder_ == null) {
          ensureHeroAbilityStatsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, heroAbilityStats_);
          onChanged();
        } else {
          heroAbilityStatsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .CMsgHeroAbilityStat hero_ability_stats = 2;
       */
      public Builder clearHeroAbilityStats() {
        if (heroAbilityStatsBuilder_ == null) {
          heroAbilityStats_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          heroAbilityStatsBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .CMsgHeroAbilityStat hero_ability_stats = 2;
       */
      public Builder removeHeroAbilityStats(int index) {
        if (heroAbilityStatsBuilder_ == null) {
          ensureHeroAbilityStatsIsMutable();
          heroAbilityStats_.remove(index);
          onChanged();
        } else {
          heroAbilityStatsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .CMsgHeroAbilityStat hero_ability_stats = 2;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgHeroAbilityStat.Builder getHeroAbilityStatsBuilder(
          int index) {
        return getHeroAbilityStatsFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .CMsgHeroAbilityStat hero_ability_stats = 2;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgHeroAbilityStatOrBuilder getHeroAbilityStatsOrBuilder(
          int index) {
        if (heroAbilityStatsBuilder_ == null) {
          return heroAbilityStats_.get(index);  } else {
          return heroAbilityStatsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .CMsgHeroAbilityStat hero_ability_stats = 2;
       */
      public java.util.List 
           getHeroAbilityStatsOrBuilderList() {
        if (heroAbilityStatsBuilder_ != null) {
          return heroAbilityStatsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(heroAbilityStats_);
        }
      }
      /**
       * repeated .CMsgHeroAbilityStat hero_ability_stats = 2;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgHeroAbilityStat.Builder addHeroAbilityStatsBuilder() {
        return getHeroAbilityStatsFieldBuilder().addBuilder(
            skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgHeroAbilityStat.getDefaultInstance());
      }
      /**
       * repeated .CMsgHeroAbilityStat hero_ability_stats = 2;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgHeroAbilityStat.Builder addHeroAbilityStatsBuilder(
          int index) {
        return getHeroAbilityStatsFieldBuilder().addBuilder(
            index, skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgHeroAbilityStat.getDefaultInstance());
      }
      /**
       * repeated .CMsgHeroAbilityStat hero_ability_stats = 2;
       */
      public java.util.List 
           getHeroAbilityStatsBuilderList() {
        return getHeroAbilityStatsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgHeroAbilityStat, skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgHeroAbilityStat.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgHeroAbilityStatOrBuilder> 
          getHeroAbilityStatsFieldBuilder() {
        if (heroAbilityStatsBuilder_ == null) {
          heroAbilityStatsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgHeroAbilityStat, skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgHeroAbilityStat.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgHeroAbilityStatOrBuilder>(
                  heroAbilityStats_,
                  ((bitField0_ & 0x00000002) == 0x00000002),
                  getParentForChildren(),
                  isClean());
          heroAbilityStats_ = null;
        }
        return heroAbilityStatsBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:CMsgCombatAnalyzerPlayerStat)
    }

    static {
      defaultInstance = new CMsgCombatAnalyzerPlayerStat(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CMsgCombatAnalyzerPlayerStat)
  }

  public interface CMsgCombatAnalyzerStatsOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CMsgCombatAnalyzerStats)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional uint64 match_id = 1;
     */
    boolean hasMatchId();
    /**
     * optional uint64 match_id = 1;
     */
    long getMatchId();

    /**
     * repeated .CMsgCombatAnalyzerPlayerStat player_stats = 2;
     */
    java.util.List 
        getPlayerStatsList();
    /**
     * repeated .CMsgCombatAnalyzerPlayerStat player_stats = 2;
     */
    skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgCombatAnalyzerPlayerStat getPlayerStats(int index);
    /**
     * repeated .CMsgCombatAnalyzerPlayerStat player_stats = 2;
     */
    int getPlayerStatsCount();
    /**
     * repeated .CMsgCombatAnalyzerPlayerStat player_stats = 2;
     */
    java.util.List 
        getPlayerStatsOrBuilderList();
    /**
     * repeated .CMsgCombatAnalyzerPlayerStat player_stats = 2;
     */
    skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgCombatAnalyzerPlayerStatOrBuilder getPlayerStatsOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code CMsgCombatAnalyzerStats}
   */
  public static final class CMsgCombatAnalyzerStats extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CMsgCombatAnalyzerStats)
      CMsgCombatAnalyzerStatsOrBuilder {
    // Use CMsgCombatAnalyzerStats.newBuilder() to construct.
    private CMsgCombatAnalyzerStats(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CMsgCombatAnalyzerStats(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CMsgCombatAnalyzerStats defaultInstance;
    public static CMsgCombatAnalyzerStats getDefaultInstance() {
      return defaultInstance;
    }

    public CMsgCombatAnalyzerStats getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CMsgCombatAnalyzerStats(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              matchId_ = input.readUInt64();
              break;
            }
            case 18: {
              if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                playerStats_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000002;
              }
              playerStats_.add(input.readMessage(skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgCombatAnalyzerPlayerStat.PARSER, extensionRegistry));
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
          playerStats_ = java.util.Collections.unmodifiableList(playerStats_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CMsgCombatAnalyzerStats_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CMsgCombatAnalyzerStats_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgCombatAnalyzerStats.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgCombatAnalyzerStats.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CMsgCombatAnalyzerStats parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CMsgCombatAnalyzerStats(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int MATCH_ID_FIELD_NUMBER = 1;
    private long matchId_;
    /**
     * optional uint64 match_id = 1;
     */
    public boolean hasMatchId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional uint64 match_id = 1;
     */
    public long getMatchId() {
      return matchId_;
    }

    public static final int PLAYER_STATS_FIELD_NUMBER = 2;
    private java.util.List playerStats_;
    /**
     * repeated .CMsgCombatAnalyzerPlayerStat player_stats = 2;
     */
    public java.util.List getPlayerStatsList() {
      return playerStats_;
    }
    /**
     * repeated .CMsgCombatAnalyzerPlayerStat player_stats = 2;
     */
    public java.util.List 
        getPlayerStatsOrBuilderList() {
      return playerStats_;
    }
    /**
     * repeated .CMsgCombatAnalyzerPlayerStat player_stats = 2;
     */
    public int getPlayerStatsCount() {
      return playerStats_.size();
    }
    /**
     * repeated .CMsgCombatAnalyzerPlayerStat player_stats = 2;
     */
    public skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgCombatAnalyzerPlayerStat getPlayerStats(int index) {
      return playerStats_.get(index);
    }
    /**
     * repeated .CMsgCombatAnalyzerPlayerStat player_stats = 2;
     */
    public skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgCombatAnalyzerPlayerStatOrBuilder getPlayerStatsOrBuilder(
        int index) {
      return playerStats_.get(index);
    }

    private void initFields() {
      matchId_ = 0L;
      playerStats_ = java.util.Collections.emptyList();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt64(1, matchId_);
      }
      for (int i = 0; i < playerStats_.size(); i++) {
        output.writeMessage(2, playerStats_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(1, matchId_);
      }
      for (int i = 0; i < playerStats_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, playerStats_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgCombatAnalyzerStats parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgCombatAnalyzerStats parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgCombatAnalyzerStats parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgCombatAnalyzerStats parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgCombatAnalyzerStats parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgCombatAnalyzerStats parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgCombatAnalyzerStats parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgCombatAnalyzerStats parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgCombatAnalyzerStats parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgCombatAnalyzerStats parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgCombatAnalyzerStats prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CMsgCombatAnalyzerStats}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CMsgCombatAnalyzerStats)
        skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgCombatAnalyzerStatsOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CMsgCombatAnalyzerStats_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CMsgCombatAnalyzerStats_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgCombatAnalyzerStats.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgCombatAnalyzerStats.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgCombatAnalyzerStats.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getPlayerStatsFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        matchId_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000001);
        if (playerStatsBuilder_ == null) {
          playerStats_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
        } else {
          playerStatsBuilder_.clear();
        }
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CMsgCombatAnalyzerStats_descriptor;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgCombatAnalyzerStats getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgCombatAnalyzerStats.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgCombatAnalyzerStats build() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgCombatAnalyzerStats result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgCombatAnalyzerStats buildPartial() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgCombatAnalyzerStats result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgCombatAnalyzerStats(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.matchId_ = matchId_;
        if (playerStatsBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            playerStats_ = java.util.Collections.unmodifiableList(playerStats_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.playerStats_ = playerStats_;
        } else {
          result.playerStats_ = playerStatsBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgCombatAnalyzerStats) {
          return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgCombatAnalyzerStats)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgCombatAnalyzerStats other) {
        if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgCombatAnalyzerStats.getDefaultInstance()) return this;
        if (other.hasMatchId()) {
          setMatchId(other.getMatchId());
        }
        if (playerStatsBuilder_ == null) {
          if (!other.playerStats_.isEmpty()) {
            if (playerStats_.isEmpty()) {
              playerStats_ = other.playerStats_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensurePlayerStatsIsMutable();
              playerStats_.addAll(other.playerStats_);
            }
            onChanged();
          }
        } else {
          if (!other.playerStats_.isEmpty()) {
            if (playerStatsBuilder_.isEmpty()) {
              playerStatsBuilder_.dispose();
              playerStatsBuilder_ = null;
              playerStats_ = other.playerStats_;
              bitField0_ = (bitField0_ & ~0x00000002);
              playerStatsBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getPlayerStatsFieldBuilder() : null;
            } else {
              playerStatsBuilder_.addAllMessages(other.playerStats_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgCombatAnalyzerStats parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgCombatAnalyzerStats) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private long matchId_ ;
      /**
       * optional uint64 match_id = 1;
       */
      public boolean hasMatchId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional uint64 match_id = 1;
       */
      public long getMatchId() {
        return matchId_;
      }
      /**
       * optional uint64 match_id = 1;
       */
      public Builder setMatchId(long value) {
        bitField0_ |= 0x00000001;
        matchId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint64 match_id = 1;
       */
      public Builder clearMatchId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        matchId_ = 0L;
        onChanged();
        return this;
      }

      private java.util.List playerStats_ =
        java.util.Collections.emptyList();
      private void ensurePlayerStatsIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          playerStats_ = new java.util.ArrayList(playerStats_);
          bitField0_ |= 0x00000002;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgCombatAnalyzerPlayerStat, skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgCombatAnalyzerPlayerStat.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgCombatAnalyzerPlayerStatOrBuilder> playerStatsBuilder_;

      /**
       * repeated .CMsgCombatAnalyzerPlayerStat player_stats = 2;
       */
      public java.util.List getPlayerStatsList() {
        if (playerStatsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(playerStats_);
        } else {
          return playerStatsBuilder_.getMessageList();
        }
      }
      /**
       * repeated .CMsgCombatAnalyzerPlayerStat player_stats = 2;
       */
      public int getPlayerStatsCount() {
        if (playerStatsBuilder_ == null) {
          return playerStats_.size();
        } else {
          return playerStatsBuilder_.getCount();
        }
      }
      /**
       * repeated .CMsgCombatAnalyzerPlayerStat player_stats = 2;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgCombatAnalyzerPlayerStat getPlayerStats(int index) {
        if (playerStatsBuilder_ == null) {
          return playerStats_.get(index);
        } else {
          return playerStatsBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .CMsgCombatAnalyzerPlayerStat player_stats = 2;
       */
      public Builder setPlayerStats(
          int index, skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgCombatAnalyzerPlayerStat value) {
        if (playerStatsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePlayerStatsIsMutable();
          playerStats_.set(index, value);
          onChanged();
        } else {
          playerStatsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .CMsgCombatAnalyzerPlayerStat player_stats = 2;
       */
      public Builder setPlayerStats(
          int index, skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgCombatAnalyzerPlayerStat.Builder builderForValue) {
        if (playerStatsBuilder_ == null) {
          ensurePlayerStatsIsMutable();
          playerStats_.set(index, builderForValue.build());
          onChanged();
        } else {
          playerStatsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CMsgCombatAnalyzerPlayerStat player_stats = 2;
       */
      public Builder addPlayerStats(skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgCombatAnalyzerPlayerStat value) {
        if (playerStatsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePlayerStatsIsMutable();
          playerStats_.add(value);
          onChanged();
        } else {
          playerStatsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .CMsgCombatAnalyzerPlayerStat player_stats = 2;
       */
      public Builder addPlayerStats(
          int index, skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgCombatAnalyzerPlayerStat value) {
        if (playerStatsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePlayerStatsIsMutable();
          playerStats_.add(index, value);
          onChanged();
        } else {
          playerStatsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .CMsgCombatAnalyzerPlayerStat player_stats = 2;
       */
      public Builder addPlayerStats(
          skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgCombatAnalyzerPlayerStat.Builder builderForValue) {
        if (playerStatsBuilder_ == null) {
          ensurePlayerStatsIsMutable();
          playerStats_.add(builderForValue.build());
          onChanged();
        } else {
          playerStatsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CMsgCombatAnalyzerPlayerStat player_stats = 2;
       */
      public Builder addPlayerStats(
          int index, skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgCombatAnalyzerPlayerStat.Builder builderForValue) {
        if (playerStatsBuilder_ == null) {
          ensurePlayerStatsIsMutable();
          playerStats_.add(index, builderForValue.build());
          onChanged();
        } else {
          playerStatsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CMsgCombatAnalyzerPlayerStat player_stats = 2;
       */
      public Builder addAllPlayerStats(
          java.lang.Iterable values) {
        if (playerStatsBuilder_ == null) {
          ensurePlayerStatsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, playerStats_);
          onChanged();
        } else {
          playerStatsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .CMsgCombatAnalyzerPlayerStat player_stats = 2;
       */
      public Builder clearPlayerStats() {
        if (playerStatsBuilder_ == null) {
          playerStats_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          playerStatsBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .CMsgCombatAnalyzerPlayerStat player_stats = 2;
       */
      public Builder removePlayerStats(int index) {
        if (playerStatsBuilder_ == null) {
          ensurePlayerStatsIsMutable();
          playerStats_.remove(index);
          onChanged();
        } else {
          playerStatsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .CMsgCombatAnalyzerPlayerStat player_stats = 2;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgCombatAnalyzerPlayerStat.Builder getPlayerStatsBuilder(
          int index) {
        return getPlayerStatsFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .CMsgCombatAnalyzerPlayerStat player_stats = 2;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgCombatAnalyzerPlayerStatOrBuilder getPlayerStatsOrBuilder(
          int index) {
        if (playerStatsBuilder_ == null) {
          return playerStats_.get(index);  } else {
          return playerStatsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .CMsgCombatAnalyzerPlayerStat player_stats = 2;
       */
      public java.util.List 
           getPlayerStatsOrBuilderList() {
        if (playerStatsBuilder_ != null) {
          return playerStatsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(playerStats_);
        }
      }
      /**
       * repeated .CMsgCombatAnalyzerPlayerStat player_stats = 2;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgCombatAnalyzerPlayerStat.Builder addPlayerStatsBuilder() {
        return getPlayerStatsFieldBuilder().addBuilder(
            skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgCombatAnalyzerPlayerStat.getDefaultInstance());
      }
      /**
       * repeated .CMsgCombatAnalyzerPlayerStat player_stats = 2;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgCombatAnalyzerPlayerStat.Builder addPlayerStatsBuilder(
          int index) {
        return getPlayerStatsFieldBuilder().addBuilder(
            index, skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgCombatAnalyzerPlayerStat.getDefaultInstance());
      }
      /**
       * repeated .CMsgCombatAnalyzerPlayerStat player_stats = 2;
       */
      public java.util.List 
           getPlayerStatsBuilderList() {
        return getPlayerStatsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgCombatAnalyzerPlayerStat, skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgCombatAnalyzerPlayerStat.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgCombatAnalyzerPlayerStatOrBuilder> 
          getPlayerStatsFieldBuilder() {
        if (playerStatsBuilder_ == null) {
          playerStatsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgCombatAnalyzerPlayerStat, skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgCombatAnalyzerPlayerStat.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgCombatAnalyzerPlayerStatOrBuilder>(
                  playerStats_,
                  ((bitField0_ & 0x00000002) == 0x00000002),
                  getParentForChildren(),
                  isClean());
          playerStats_ = null;
        }
        return playerStatsBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:CMsgCombatAnalyzerStats)
    }

    static {
      defaultInstance = new CMsgCombatAnalyzerStats(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CMsgCombatAnalyzerStats)
  }

  public interface CDOTAUserMsg_ProjectionAbilityOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_ProjectionAbility)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional uint32 ability_id = 1;
     */
    boolean hasAbilityId();
    /**
     * optional uint32 ability_id = 1;
     */
    int getAbilityId();

    /**
     * optional int32 caster_ent_index = 2;
     */
    boolean hasCasterEntIndex();
    /**
     * optional int32 caster_ent_index = 2;
     */
    int getCasterEntIndex();

    /**
     * optional int32 caster_team = 3;
     */
    boolean hasCasterTeam();
    /**
     * optional int32 caster_team = 3;
     */
    int getCasterTeam();

    /**
     * optional bool channel_end = 4;
     */
    boolean hasChannelEnd();
    /**
     * optional bool channel_end = 4;
     */
    boolean getChannelEnd();

    /**
     * optional .CMsgVector origin = 5;
     */
    boolean hasOrigin();
    /**
     * optional .CMsgVector origin = 5;
     */
    skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector getOrigin();
    /**
     * optional .CMsgVector origin = 5;
     */
    skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder getOriginOrBuilder();

    /**
     * optional bool track_caster_only = 6;
     */
    boolean hasTrackCasterOnly();
    /**
     * optional bool track_caster_only = 6;
     */
    boolean getTrackCasterOnly();

    /**
     * optional float end_time = 7;
     */
    boolean hasEndTime();
    /**
     * optional float end_time = 7;
     */
    float getEndTime();

    /**
     * optional int32 victim_ent_index = 8;
     */
    boolean hasVictimEntIndex();
    /**
     * optional int32 victim_ent_index = 8;
     */
    int getVictimEntIndex();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_ProjectionAbility}
   */
  public static final class CDOTAUserMsg_ProjectionAbility extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_ProjectionAbility)
      CDOTAUserMsg_ProjectionAbilityOrBuilder {
    // Use CDOTAUserMsg_ProjectionAbility.newBuilder() to construct.
    private CDOTAUserMsg_ProjectionAbility(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_ProjectionAbility(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_ProjectionAbility defaultInstance;
    public static CDOTAUserMsg_ProjectionAbility getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_ProjectionAbility getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_ProjectionAbility(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              abilityId_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              casterEntIndex_ = input.readInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              casterTeam_ = input.readInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              channelEnd_ = input.readBool();
              break;
            }
            case 42: {
              skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder subBuilder = null;
              if (((bitField0_ & 0x00000010) == 0x00000010)) {
                subBuilder = origin_.toBuilder();
              }
              origin_ = input.readMessage(skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(origin_);
                origin_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000010;
              break;
            }
            case 48: {
              bitField0_ |= 0x00000020;
              trackCasterOnly_ = input.readBool();
              break;
            }
            case 61: {
              bitField0_ |= 0x00000040;
              endTime_ = input.readFloat();
              break;
            }
            case 64: {
              bitField0_ |= 0x00000080;
              victimEntIndex_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ProjectionAbility_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ProjectionAbility_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ProjectionAbility.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ProjectionAbility.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_ProjectionAbility parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_ProjectionAbility(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int ABILITY_ID_FIELD_NUMBER = 1;
    private int abilityId_;
    /**
     * optional uint32 ability_id = 1;
     */
    public boolean hasAbilityId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional uint32 ability_id = 1;
     */
    public int getAbilityId() {
      return abilityId_;
    }

    public static final int CASTER_ENT_INDEX_FIELD_NUMBER = 2;
    private int casterEntIndex_;
    /**
     * optional int32 caster_ent_index = 2;
     */
    public boolean hasCasterEntIndex() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional int32 caster_ent_index = 2;
     */
    public int getCasterEntIndex() {
      return casterEntIndex_;
    }

    public static final int CASTER_TEAM_FIELD_NUMBER = 3;
    private int casterTeam_;
    /**
     * optional int32 caster_team = 3;
     */
    public boolean hasCasterTeam() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional int32 caster_team = 3;
     */
    public int getCasterTeam() {
      return casterTeam_;
    }

    public static final int CHANNEL_END_FIELD_NUMBER = 4;
    private boolean channelEnd_;
    /**
     * optional bool channel_end = 4;
     */
    public boolean hasChannelEnd() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional bool channel_end = 4;
     */
    public boolean getChannelEnd() {
      return channelEnd_;
    }

    public static final int ORIGIN_FIELD_NUMBER = 5;
    private skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector origin_;
    /**
     * optional .CMsgVector origin = 5;
     */
    public boolean hasOrigin() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * optional .CMsgVector origin = 5;
     */
    public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector getOrigin() {
      return origin_;
    }
    /**
     * optional .CMsgVector origin = 5;
     */
    public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder getOriginOrBuilder() {
      return origin_;
    }

    public static final int TRACK_CASTER_ONLY_FIELD_NUMBER = 6;
    private boolean trackCasterOnly_;
    /**
     * optional bool track_caster_only = 6;
     */
    public boolean hasTrackCasterOnly() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     * optional bool track_caster_only = 6;
     */
    public boolean getTrackCasterOnly() {
      return trackCasterOnly_;
    }

    public static final int END_TIME_FIELD_NUMBER = 7;
    private float endTime_;
    /**
     * optional float end_time = 7;
     */
    public boolean hasEndTime() {
      return ((bitField0_ & 0x00000040) == 0x00000040);
    }
    /**
     * optional float end_time = 7;
     */
    public float getEndTime() {
      return endTime_;
    }

    public static final int VICTIM_ENT_INDEX_FIELD_NUMBER = 8;
    private int victimEntIndex_;
    /**
     * optional int32 victim_ent_index = 8;
     */
    public boolean hasVictimEntIndex() {
      return ((bitField0_ & 0x00000080) == 0x00000080);
    }
    /**
     * optional int32 victim_ent_index = 8;
     */
    public int getVictimEntIndex() {
      return victimEntIndex_;
    }

    private void initFields() {
      abilityId_ = 0;
      casterEntIndex_ = 0;
      casterTeam_ = 0;
      channelEnd_ = false;
      origin_ = skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.getDefaultInstance();
      trackCasterOnly_ = false;
      endTime_ = 0F;
      victimEntIndex_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, abilityId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, casterEntIndex_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeInt32(3, casterTeam_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeBool(4, channelEnd_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeMessage(5, origin_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeBool(6, trackCasterOnly_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        output.writeFloat(7, endTime_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        output.writeInt32(8, victimEntIndex_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, abilityId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, casterEntIndex_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, casterTeam_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(4, channelEnd_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(5, origin_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(6, trackCasterOnly_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(7, endTime_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(8, victimEntIndex_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ProjectionAbility parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ProjectionAbility parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ProjectionAbility parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ProjectionAbility parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ProjectionAbility parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ProjectionAbility parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ProjectionAbility parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ProjectionAbility parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ProjectionAbility parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ProjectionAbility parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ProjectionAbility prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_ProjectionAbility}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_ProjectionAbility)
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ProjectionAbilityOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ProjectionAbility_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ProjectionAbility_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ProjectionAbility.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ProjectionAbility.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ProjectionAbility.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getOriginFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        abilityId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        casterEntIndex_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        casterTeam_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        channelEnd_ = false;
        bitField0_ = (bitField0_ & ~0x00000008);
        if (originBuilder_ == null) {
          origin_ = skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.getDefaultInstance();
        } else {
          originBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000010);
        trackCasterOnly_ = false;
        bitField0_ = (bitField0_ & ~0x00000020);
        endTime_ = 0F;
        bitField0_ = (bitField0_ & ~0x00000040);
        victimEntIndex_ = 0;
        bitField0_ = (bitField0_ & ~0x00000080);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ProjectionAbility_descriptor;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ProjectionAbility getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ProjectionAbility.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ProjectionAbility build() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ProjectionAbility result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ProjectionAbility buildPartial() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ProjectionAbility result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ProjectionAbility(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.abilityId_ = abilityId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.casterEntIndex_ = casterEntIndex_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.casterTeam_ = casterTeam_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.channelEnd_ = channelEnd_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        if (originBuilder_ == null) {
          result.origin_ = origin_;
        } else {
          result.origin_ = originBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        result.trackCasterOnly_ = trackCasterOnly_;
        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
          to_bitField0_ |= 0x00000040;
        }
        result.endTime_ = endTime_;
        if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
          to_bitField0_ |= 0x00000080;
        }
        result.victimEntIndex_ = victimEntIndex_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ProjectionAbility) {
          return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ProjectionAbility)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ProjectionAbility other) {
        if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ProjectionAbility.getDefaultInstance()) return this;
        if (other.hasAbilityId()) {
          setAbilityId(other.getAbilityId());
        }
        if (other.hasCasterEntIndex()) {
          setCasterEntIndex(other.getCasterEntIndex());
        }
        if (other.hasCasterTeam()) {
          setCasterTeam(other.getCasterTeam());
        }
        if (other.hasChannelEnd()) {
          setChannelEnd(other.getChannelEnd());
        }
        if (other.hasOrigin()) {
          mergeOrigin(other.getOrigin());
        }
        if (other.hasTrackCasterOnly()) {
          setTrackCasterOnly(other.getTrackCasterOnly());
        }
        if (other.hasEndTime()) {
          setEndTime(other.getEndTime());
        }
        if (other.hasVictimEntIndex()) {
          setVictimEntIndex(other.getVictimEntIndex());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ProjectionAbility parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ProjectionAbility) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int abilityId_ ;
      /**
       * optional uint32 ability_id = 1;
       */
      public boolean hasAbilityId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional uint32 ability_id = 1;
       */
      public int getAbilityId() {
        return abilityId_;
      }
      /**
       * optional uint32 ability_id = 1;
       */
      public Builder setAbilityId(int value) {
        bitField0_ |= 0x00000001;
        abilityId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 ability_id = 1;
       */
      public Builder clearAbilityId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        abilityId_ = 0;
        onChanged();
        return this;
      }

      private int casterEntIndex_ ;
      /**
       * optional int32 caster_ent_index = 2;
       */
      public boolean hasCasterEntIndex() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional int32 caster_ent_index = 2;
       */
      public int getCasterEntIndex() {
        return casterEntIndex_;
      }
      /**
       * optional int32 caster_ent_index = 2;
       */
      public Builder setCasterEntIndex(int value) {
        bitField0_ |= 0x00000002;
        casterEntIndex_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 caster_ent_index = 2;
       */
      public Builder clearCasterEntIndex() {
        bitField0_ = (bitField0_ & ~0x00000002);
        casterEntIndex_ = 0;
        onChanged();
        return this;
      }

      private int casterTeam_ ;
      /**
       * optional int32 caster_team = 3;
       */
      public boolean hasCasterTeam() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional int32 caster_team = 3;
       */
      public int getCasterTeam() {
        return casterTeam_;
      }
      /**
       * optional int32 caster_team = 3;
       */
      public Builder setCasterTeam(int value) {
        bitField0_ |= 0x00000004;
        casterTeam_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 caster_team = 3;
       */
      public Builder clearCasterTeam() {
        bitField0_ = (bitField0_ & ~0x00000004);
        casterTeam_ = 0;
        onChanged();
        return this;
      }

      private boolean channelEnd_ ;
      /**
       * optional bool channel_end = 4;
       */
      public boolean hasChannelEnd() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional bool channel_end = 4;
       */
      public boolean getChannelEnd() {
        return channelEnd_;
      }
      /**
       * optional bool channel_end = 4;
       */
      public Builder setChannelEnd(boolean value) {
        bitField0_ |= 0x00000008;
        channelEnd_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool channel_end = 4;
       */
      public Builder clearChannelEnd() {
        bitField0_ = (bitField0_ & ~0x00000008);
        channelEnd_ = false;
        onChanged();
        return this;
      }

      private skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector origin_ = skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder> originBuilder_;
      /**
       * optional .CMsgVector origin = 5;
       */
      public boolean hasOrigin() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * optional .CMsgVector origin = 5;
       */
      public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector getOrigin() {
        if (originBuilder_ == null) {
          return origin_;
        } else {
          return originBuilder_.getMessage();
        }
      }
      /**
       * optional .CMsgVector origin = 5;
       */
      public Builder setOrigin(skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector value) {
        if (originBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          origin_ = value;
          onChanged();
        } else {
          originBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       * optional .CMsgVector origin = 5;
       */
      public Builder setOrigin(
          skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder builderForValue) {
        if (originBuilder_ == null) {
          origin_ = builderForValue.build();
          onChanged();
        } else {
          originBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       * optional .CMsgVector origin = 5;
       */
      public Builder mergeOrigin(skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector value) {
        if (originBuilder_ == null) {
          if (((bitField0_ & 0x00000010) == 0x00000010) &&
              origin_ != skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.getDefaultInstance()) {
            origin_ =
              skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.newBuilder(origin_).mergeFrom(value).buildPartial();
          } else {
            origin_ = value;
          }
          onChanged();
        } else {
          originBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       * optional .CMsgVector origin = 5;
       */
      public Builder clearOrigin() {
        if (originBuilder_ == null) {
          origin_ = skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.getDefaultInstance();
          onChanged();
        } else {
          originBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }
      /**
       * optional .CMsgVector origin = 5;
       */
      public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder getOriginBuilder() {
        bitField0_ |= 0x00000010;
        onChanged();
        return getOriginFieldBuilder().getBuilder();
      }
      /**
       * optional .CMsgVector origin = 5;
       */
      public skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder getOriginOrBuilder() {
        if (originBuilder_ != null) {
          return originBuilder_.getMessageOrBuilder();
        } else {
          return origin_;
        }
      }
      /**
       * optional .CMsgVector origin = 5;
       */
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder> 
          getOriginFieldBuilder() {
        if (originBuilder_ == null) {
          originBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVector.Builder, skadistats.clarity.wire.common.proto.NetworkBaseTypes.CMsgVectorOrBuilder>(
                  getOrigin(),
                  getParentForChildren(),
                  isClean());
          origin_ = null;
        }
        return originBuilder_;
      }

      private boolean trackCasterOnly_ ;
      /**
       * optional bool track_caster_only = 6;
       */
      public boolean hasTrackCasterOnly() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * optional bool track_caster_only = 6;
       */
      public boolean getTrackCasterOnly() {
        return trackCasterOnly_;
      }
      /**
       * optional bool track_caster_only = 6;
       */
      public Builder setTrackCasterOnly(boolean value) {
        bitField0_ |= 0x00000020;
        trackCasterOnly_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool track_caster_only = 6;
       */
      public Builder clearTrackCasterOnly() {
        bitField0_ = (bitField0_ & ~0x00000020);
        trackCasterOnly_ = false;
        onChanged();
        return this;
      }

      private float endTime_ ;
      /**
       * optional float end_time = 7;
       */
      public boolean hasEndTime() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      /**
       * optional float end_time = 7;
       */
      public float getEndTime() {
        return endTime_;
      }
      /**
       * optional float end_time = 7;
       */
      public Builder setEndTime(float value) {
        bitField0_ |= 0x00000040;
        endTime_ = value;
        onChanged();
        return this;
      }
      /**
       * optional float end_time = 7;
       */
      public Builder clearEndTime() {
        bitField0_ = (bitField0_ & ~0x00000040);
        endTime_ = 0F;
        onChanged();
        return this;
      }

      private int victimEntIndex_ ;
      /**
       * optional int32 victim_ent_index = 8;
       */
      public boolean hasVictimEntIndex() {
        return ((bitField0_ & 0x00000080) == 0x00000080);
      }
      /**
       * optional int32 victim_ent_index = 8;
       */
      public int getVictimEntIndex() {
        return victimEntIndex_;
      }
      /**
       * optional int32 victim_ent_index = 8;
       */
      public Builder setVictimEntIndex(int value) {
        bitField0_ |= 0x00000080;
        victimEntIndex_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 victim_ent_index = 8;
       */
      public Builder clearVictimEntIndex() {
        bitField0_ = (bitField0_ & ~0x00000080);
        victimEntIndex_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_ProjectionAbility)
    }

    static {
      defaultInstance = new CDOTAUserMsg_ProjectionAbility(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_ProjectionAbility)
  }

  public interface CDOTAUserMsg_ProjectionEventOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_ProjectionEvent)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional .EProjectionEvent event_id = 1 [default = ePE_FirstBlood];
     */
    boolean hasEventId();
    /**
     * optional .EProjectionEvent event_id = 1 [default = ePE_FirstBlood];
     */
    skadistats.clarity.wire.common.proto.DotaUserMessages.EProjectionEvent getEventId();

    /**
     * optional uint32 team = 2;
     */
    boolean hasTeam();
    /**
     * optional uint32 team = 2;
     */
    int getTeam();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_ProjectionEvent}
   */
  public static final class CDOTAUserMsg_ProjectionEvent extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_ProjectionEvent)
      CDOTAUserMsg_ProjectionEventOrBuilder {
    // Use CDOTAUserMsg_ProjectionEvent.newBuilder() to construct.
    private CDOTAUserMsg_ProjectionEvent(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_ProjectionEvent(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_ProjectionEvent defaultInstance;
    public static CDOTAUserMsg_ProjectionEvent getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_ProjectionEvent getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_ProjectionEvent(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              int rawValue = input.readEnum();
              skadistats.clarity.wire.common.proto.DotaUserMessages.EProjectionEvent value = skadistats.clarity.wire.common.proto.DotaUserMessages.EProjectionEvent.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(1, rawValue);
              } else {
                bitField0_ |= 0x00000001;
                eventId_ = value;
              }
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              team_ = input.readUInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ProjectionEvent_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ProjectionEvent_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ProjectionEvent.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ProjectionEvent.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_ProjectionEvent parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_ProjectionEvent(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int EVENT_ID_FIELD_NUMBER = 1;
    private skadistats.clarity.wire.common.proto.DotaUserMessages.EProjectionEvent eventId_;
    /**
     * optional .EProjectionEvent event_id = 1 [default = ePE_FirstBlood];
     */
    public boolean hasEventId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional .EProjectionEvent event_id = 1 [default = ePE_FirstBlood];
     */
    public skadistats.clarity.wire.common.proto.DotaUserMessages.EProjectionEvent getEventId() {
      return eventId_;
    }

    public static final int TEAM_FIELD_NUMBER = 2;
    private int team_;
    /**
     * optional uint32 team = 2;
     */
    public boolean hasTeam() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional uint32 team = 2;
     */
    public int getTeam() {
      return team_;
    }

    private void initFields() {
      eventId_ = skadistats.clarity.wire.common.proto.DotaUserMessages.EProjectionEvent.ePE_FirstBlood;
      team_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeEnum(1, eventId_.getNumber());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, team_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(1, eventId_.getNumber());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, team_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ProjectionEvent parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ProjectionEvent parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ProjectionEvent parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ProjectionEvent parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ProjectionEvent parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ProjectionEvent parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ProjectionEvent parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ProjectionEvent parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ProjectionEvent parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ProjectionEvent parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ProjectionEvent prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_ProjectionEvent}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_ProjectionEvent)
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ProjectionEventOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ProjectionEvent_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ProjectionEvent_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ProjectionEvent.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ProjectionEvent.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ProjectionEvent.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        eventId_ = skadistats.clarity.wire.common.proto.DotaUserMessages.EProjectionEvent.ePE_FirstBlood;
        bitField0_ = (bitField0_ & ~0x00000001);
        team_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ProjectionEvent_descriptor;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ProjectionEvent getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ProjectionEvent.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ProjectionEvent build() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ProjectionEvent result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ProjectionEvent buildPartial() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ProjectionEvent result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ProjectionEvent(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.eventId_ = eventId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.team_ = team_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ProjectionEvent) {
          return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ProjectionEvent)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ProjectionEvent other) {
        if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ProjectionEvent.getDefaultInstance()) return this;
        if (other.hasEventId()) {
          setEventId(other.getEventId());
        }
        if (other.hasTeam()) {
          setTeam(other.getTeam());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ProjectionEvent parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ProjectionEvent) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private skadistats.clarity.wire.common.proto.DotaUserMessages.EProjectionEvent eventId_ = skadistats.clarity.wire.common.proto.DotaUserMessages.EProjectionEvent.ePE_FirstBlood;
      /**
       * optional .EProjectionEvent event_id = 1 [default = ePE_FirstBlood];
       */
      public boolean hasEventId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional .EProjectionEvent event_id = 1 [default = ePE_FirstBlood];
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.EProjectionEvent getEventId() {
        return eventId_;
      }
      /**
       * optional .EProjectionEvent event_id = 1 [default = ePE_FirstBlood];
       */
      public Builder setEventId(skadistats.clarity.wire.common.proto.DotaUserMessages.EProjectionEvent value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        eventId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional .EProjectionEvent event_id = 1 [default = ePE_FirstBlood];
       */
      public Builder clearEventId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        eventId_ = skadistats.clarity.wire.common.proto.DotaUserMessages.EProjectionEvent.ePE_FirstBlood;
        onChanged();
        return this;
      }

      private int team_ ;
      /**
       * optional uint32 team = 2;
       */
      public boolean hasTeam() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional uint32 team = 2;
       */
      public int getTeam() {
        return team_;
      }
      /**
       * optional uint32 team = 2;
       */
      public Builder setTeam(int value) {
        bitField0_ |= 0x00000002;
        team_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 team = 2;
       */
      public Builder clearTeam() {
        bitField0_ = (bitField0_ & ~0x00000002);
        team_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_ProjectionEvent)
    }

    static {
      defaultInstance = new CDOTAUserMsg_ProjectionEvent(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_ProjectionEvent)
  }

  public interface CDOTAUserMsg_XPAlertOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_XPAlert)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional uint32 player_id = 1;
     */
    boolean hasPlayerId();
    /**
     * optional uint32 player_id = 1;
     */
    int getPlayerId();

    /**
     * optional uint32 target_entindex = 2;
     */
    boolean hasTargetEntindex();
    /**
     * optional uint32 target_entindex = 2;
     */
    int getTargetEntindex();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_XPAlert}
   */
  public static final class CDOTAUserMsg_XPAlert extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_XPAlert)
      CDOTAUserMsg_XPAlertOrBuilder {
    // Use CDOTAUserMsg_XPAlert.newBuilder() to construct.
    private CDOTAUserMsg_XPAlert(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_XPAlert(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_XPAlert defaultInstance;
    public static CDOTAUserMsg_XPAlert getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_XPAlert getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_XPAlert(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              playerId_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              targetEntindex_ = input.readUInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_XPAlert_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_XPAlert_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_XPAlert.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_XPAlert.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_XPAlert parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_XPAlert(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int PLAYER_ID_FIELD_NUMBER = 1;
    private int playerId_;
    /**
     * optional uint32 player_id = 1;
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional uint32 player_id = 1;
     */
    public int getPlayerId() {
      return playerId_;
    }

    public static final int TARGET_ENTINDEX_FIELD_NUMBER = 2;
    private int targetEntindex_;
    /**
     * optional uint32 target_entindex = 2;
     */
    public boolean hasTargetEntindex() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional uint32 target_entindex = 2;
     */
    public int getTargetEntindex() {
      return targetEntindex_;
    }

    private void initFields() {
      playerId_ = 0;
      targetEntindex_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, targetEntindex_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, targetEntindex_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_XPAlert parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_XPAlert parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_XPAlert parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_XPAlert parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_XPAlert parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_XPAlert parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_XPAlert parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_XPAlert parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_XPAlert parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_XPAlert parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_XPAlert prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_XPAlert}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_XPAlert)
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_XPAlertOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_XPAlert_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_XPAlert_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_XPAlert.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_XPAlert.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_XPAlert.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        targetEntindex_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_XPAlert_descriptor;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_XPAlert getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_XPAlert.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_XPAlert build() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_XPAlert result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_XPAlert buildPartial() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_XPAlert result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_XPAlert(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.playerId_ = playerId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.targetEntindex_ = targetEntindex_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_XPAlert) {
          return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_XPAlert)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_XPAlert other) {
        if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_XPAlert.getDefaultInstance()) return this;
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        if (other.hasTargetEntindex()) {
          setTargetEntindex(other.getTargetEntindex());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_XPAlert parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_XPAlert) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int playerId_ ;
      /**
       * optional uint32 player_id = 1;
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional uint32 player_id = 1;
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * optional uint32 player_id = 1;
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000001;
        playerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 player_id = 1;
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        onChanged();
        return this;
      }

      private int targetEntindex_ ;
      /**
       * optional uint32 target_entindex = 2;
       */
      public boolean hasTargetEntindex() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional uint32 target_entindex = 2;
       */
      public int getTargetEntindex() {
        return targetEntindex_;
      }
      /**
       * optional uint32 target_entindex = 2;
       */
      public Builder setTargetEntindex(int value) {
        bitField0_ |= 0x00000002;
        targetEntindex_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 target_entindex = 2;
       */
      public Builder clearTargetEntindex() {
        bitField0_ = (bitField0_ & ~0x00000002);
        targetEntindex_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_XPAlert)
    }

    static {
      defaultInstance = new CDOTAUserMsg_XPAlert(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_XPAlert)
  }

  public interface CDOTAUserMsg_TalentTreeAlertOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_TalentTreeAlert)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional uint32 player_id = 1;
     */
    boolean hasPlayerId();
    /**
     * optional uint32 player_id = 1;
     */
    int getPlayerId();

    /**
     * optional uint32 target_entindex = 2;
     */
    boolean hasTargetEntindex();
    /**
     * optional uint32 target_entindex = 2;
     */
    int getTargetEntindex();

    /**
     * optional int32 ability_id = 3;
     */
    boolean hasAbilityId();
    /**
     * optional int32 ability_id = 3;
     */
    int getAbilityId();

    /**
     * optional int32 slot = 4;
     */
    boolean hasSlot();
    /**
     * optional int32 slot = 4;
     */
    int getSlot();

    /**
     * optional bool learned = 5;
     */
    boolean hasLearned();
    /**
     * optional bool learned = 5;
     */
    boolean getLearned();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_TalentTreeAlert}
   */
  public static final class CDOTAUserMsg_TalentTreeAlert extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_TalentTreeAlert)
      CDOTAUserMsg_TalentTreeAlertOrBuilder {
    // Use CDOTAUserMsg_TalentTreeAlert.newBuilder() to construct.
    private CDOTAUserMsg_TalentTreeAlert(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_TalentTreeAlert(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_TalentTreeAlert defaultInstance;
    public static CDOTAUserMsg_TalentTreeAlert getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_TalentTreeAlert getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_TalentTreeAlert(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              playerId_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              targetEntindex_ = input.readUInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              abilityId_ = input.readInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              slot_ = input.readInt32();
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              learned_ = input.readBool();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_TalentTreeAlert_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_TalentTreeAlert_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TalentTreeAlert.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TalentTreeAlert.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_TalentTreeAlert parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_TalentTreeAlert(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int PLAYER_ID_FIELD_NUMBER = 1;
    private int playerId_;
    /**
     * optional uint32 player_id = 1;
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional uint32 player_id = 1;
     */
    public int getPlayerId() {
      return playerId_;
    }

    public static final int TARGET_ENTINDEX_FIELD_NUMBER = 2;
    private int targetEntindex_;
    /**
     * optional uint32 target_entindex = 2;
     */
    public boolean hasTargetEntindex() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional uint32 target_entindex = 2;
     */
    public int getTargetEntindex() {
      return targetEntindex_;
    }

    public static final int ABILITY_ID_FIELD_NUMBER = 3;
    private int abilityId_;
    /**
     * optional int32 ability_id = 3;
     */
    public boolean hasAbilityId() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional int32 ability_id = 3;
     */
    public int getAbilityId() {
      return abilityId_;
    }

    public static final int SLOT_FIELD_NUMBER = 4;
    private int slot_;
    /**
     * optional int32 slot = 4;
     */
    public boolean hasSlot() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional int32 slot = 4;
     */
    public int getSlot() {
      return slot_;
    }

    public static final int LEARNED_FIELD_NUMBER = 5;
    private boolean learned_;
    /**
     * optional bool learned = 5;
     */
    public boolean hasLearned() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * optional bool learned = 5;
     */
    public boolean getLearned() {
      return learned_;
    }

    private void initFields() {
      playerId_ = 0;
      targetEntindex_ = 0;
      abilityId_ = 0;
      slot_ = 0;
      learned_ = false;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, targetEntindex_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeInt32(3, abilityId_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeInt32(4, slot_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeBool(5, learned_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, targetEntindex_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, abilityId_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, slot_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(5, learned_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TalentTreeAlert parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TalentTreeAlert parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TalentTreeAlert parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TalentTreeAlert parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TalentTreeAlert parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TalentTreeAlert parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TalentTreeAlert parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TalentTreeAlert parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TalentTreeAlert parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TalentTreeAlert parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TalentTreeAlert prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_TalentTreeAlert}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_TalentTreeAlert)
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TalentTreeAlertOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_TalentTreeAlert_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_TalentTreeAlert_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TalentTreeAlert.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TalentTreeAlert.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TalentTreeAlert.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        targetEntindex_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        abilityId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        slot_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        learned_ = false;
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_TalentTreeAlert_descriptor;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TalentTreeAlert getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TalentTreeAlert.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TalentTreeAlert build() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TalentTreeAlert result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TalentTreeAlert buildPartial() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TalentTreeAlert result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TalentTreeAlert(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.playerId_ = playerId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.targetEntindex_ = targetEntindex_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.abilityId_ = abilityId_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.slot_ = slot_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.learned_ = learned_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TalentTreeAlert) {
          return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TalentTreeAlert)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TalentTreeAlert other) {
        if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TalentTreeAlert.getDefaultInstance()) return this;
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        if (other.hasTargetEntindex()) {
          setTargetEntindex(other.getTargetEntindex());
        }
        if (other.hasAbilityId()) {
          setAbilityId(other.getAbilityId());
        }
        if (other.hasSlot()) {
          setSlot(other.getSlot());
        }
        if (other.hasLearned()) {
          setLearned(other.getLearned());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TalentTreeAlert parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TalentTreeAlert) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int playerId_ ;
      /**
       * optional uint32 player_id = 1;
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional uint32 player_id = 1;
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * optional uint32 player_id = 1;
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000001;
        playerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 player_id = 1;
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        onChanged();
        return this;
      }

      private int targetEntindex_ ;
      /**
       * optional uint32 target_entindex = 2;
       */
      public boolean hasTargetEntindex() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional uint32 target_entindex = 2;
       */
      public int getTargetEntindex() {
        return targetEntindex_;
      }
      /**
       * optional uint32 target_entindex = 2;
       */
      public Builder setTargetEntindex(int value) {
        bitField0_ |= 0x00000002;
        targetEntindex_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 target_entindex = 2;
       */
      public Builder clearTargetEntindex() {
        bitField0_ = (bitField0_ & ~0x00000002);
        targetEntindex_ = 0;
        onChanged();
        return this;
      }

      private int abilityId_ ;
      /**
       * optional int32 ability_id = 3;
       */
      public boolean hasAbilityId() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional int32 ability_id = 3;
       */
      public int getAbilityId() {
        return abilityId_;
      }
      /**
       * optional int32 ability_id = 3;
       */
      public Builder setAbilityId(int value) {
        bitField0_ |= 0x00000004;
        abilityId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 ability_id = 3;
       */
      public Builder clearAbilityId() {
        bitField0_ = (bitField0_ & ~0x00000004);
        abilityId_ = 0;
        onChanged();
        return this;
      }

      private int slot_ ;
      /**
       * optional int32 slot = 4;
       */
      public boolean hasSlot() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional int32 slot = 4;
       */
      public int getSlot() {
        return slot_;
      }
      /**
       * optional int32 slot = 4;
       */
      public Builder setSlot(int value) {
        bitField0_ |= 0x00000008;
        slot_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 slot = 4;
       */
      public Builder clearSlot() {
        bitField0_ = (bitField0_ & ~0x00000008);
        slot_ = 0;
        onChanged();
        return this;
      }

      private boolean learned_ ;
      /**
       * optional bool learned = 5;
       */
      public boolean hasLearned() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * optional bool learned = 5;
       */
      public boolean getLearned() {
        return learned_;
      }
      /**
       * optional bool learned = 5;
       */
      public Builder setLearned(boolean value) {
        bitField0_ |= 0x00000010;
        learned_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool learned = 5;
       */
      public Builder clearLearned() {
        bitField0_ = (bitField0_ & ~0x00000010);
        learned_ = false;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_TalentTreeAlert)
    }

    static {
      defaultInstance = new CDOTAUserMsg_TalentTreeAlert(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_TalentTreeAlert)
  }

  public interface CDOTAUserMsg_UpdateQuestProgressOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_UpdateQuestProgress)
      com.google.protobuf.MessageOrBuilder {
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_UpdateQuestProgress}
   */
  public static final class CDOTAUserMsg_UpdateQuestProgress extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_UpdateQuestProgress)
      CDOTAUserMsg_UpdateQuestProgressOrBuilder {
    // Use CDOTAUserMsg_UpdateQuestProgress.newBuilder() to construct.
    private CDOTAUserMsg_UpdateQuestProgress(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_UpdateQuestProgress(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_UpdateQuestProgress defaultInstance;
    public static CDOTAUserMsg_UpdateQuestProgress getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_UpdateQuestProgress getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_UpdateQuestProgress(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_UpdateQuestProgress_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_UpdateQuestProgress_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UpdateQuestProgress.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UpdateQuestProgress.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_UpdateQuestProgress parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_UpdateQuestProgress(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private void initFields() {
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UpdateQuestProgress parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UpdateQuestProgress parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UpdateQuestProgress parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UpdateQuestProgress parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UpdateQuestProgress parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UpdateQuestProgress parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UpdateQuestProgress parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UpdateQuestProgress parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UpdateQuestProgress parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UpdateQuestProgress parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UpdateQuestProgress prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_UpdateQuestProgress}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_UpdateQuestProgress)
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UpdateQuestProgressOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_UpdateQuestProgress_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_UpdateQuestProgress_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UpdateQuestProgress.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UpdateQuestProgress.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UpdateQuestProgress.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_UpdateQuestProgress_descriptor;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UpdateQuestProgress getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UpdateQuestProgress.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UpdateQuestProgress build() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UpdateQuestProgress result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UpdateQuestProgress buildPartial() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UpdateQuestProgress result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UpdateQuestProgress(this);
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UpdateQuestProgress) {
          return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UpdateQuestProgress)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UpdateQuestProgress other) {
        if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UpdateQuestProgress.getDefaultInstance()) return this;
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UpdateQuestProgress parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_UpdateQuestProgress) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_UpdateQuestProgress)
    }

    static {
      defaultInstance = new CDOTAUserMsg_UpdateQuestProgress(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_UpdateQuestProgress)
  }

  public interface CDOTAUserMsg_SelectPenaltyGoldOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_SelectPenaltyGold)
      com.google.protobuf.MessageOrBuilder {

    /**
     * required uint32 player_id = 1;
     */
    boolean hasPlayerId();
    /**
     * required uint32 player_id = 1;
     */
    int getPlayerId();

    /**
     * optional sint32 cost = 2;
     */
    boolean hasCost();
    /**
     * optional sint32 cost = 2;
     */
    int getCost();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_SelectPenaltyGold}
   */
  public static final class CDOTAUserMsg_SelectPenaltyGold extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_SelectPenaltyGold)
      CDOTAUserMsg_SelectPenaltyGoldOrBuilder {
    // Use CDOTAUserMsg_SelectPenaltyGold.newBuilder() to construct.
    private CDOTAUserMsg_SelectPenaltyGold(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_SelectPenaltyGold(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_SelectPenaltyGold defaultInstance;
    public static CDOTAUserMsg_SelectPenaltyGold getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_SelectPenaltyGold getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_SelectPenaltyGold(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              playerId_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              cost_ = input.readSInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_SelectPenaltyGold_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_SelectPenaltyGold_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SelectPenaltyGold.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SelectPenaltyGold.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_SelectPenaltyGold parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_SelectPenaltyGold(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int PLAYER_ID_FIELD_NUMBER = 1;
    private int playerId_;
    /**
     * required uint32 player_id = 1;
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * required uint32 player_id = 1;
     */
    public int getPlayerId() {
      return playerId_;
    }

    public static final int COST_FIELD_NUMBER = 2;
    private int cost_;
    /**
     * optional sint32 cost = 2;
     */
    public boolean hasCost() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional sint32 cost = 2;
     */
    public int getCost() {
      return cost_;
    }

    private void initFields() {
      playerId_ = 0;
      cost_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasPlayerId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeSInt32(2, cost_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeSInt32Size(2, cost_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SelectPenaltyGold parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SelectPenaltyGold parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SelectPenaltyGold parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SelectPenaltyGold parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SelectPenaltyGold parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SelectPenaltyGold parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SelectPenaltyGold parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SelectPenaltyGold parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SelectPenaltyGold parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SelectPenaltyGold parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SelectPenaltyGold prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_SelectPenaltyGold}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_SelectPenaltyGold)
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SelectPenaltyGoldOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_SelectPenaltyGold_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_SelectPenaltyGold_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SelectPenaltyGold.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SelectPenaltyGold.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SelectPenaltyGold.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        cost_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_SelectPenaltyGold_descriptor;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SelectPenaltyGold getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SelectPenaltyGold.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SelectPenaltyGold build() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SelectPenaltyGold result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SelectPenaltyGold buildPartial() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SelectPenaltyGold result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SelectPenaltyGold(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.playerId_ = playerId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.cost_ = cost_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SelectPenaltyGold) {
          return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SelectPenaltyGold)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SelectPenaltyGold other) {
        if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SelectPenaltyGold.getDefaultInstance()) return this;
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        if (other.hasCost()) {
          setCost(other.getCost());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasPlayerId()) {
          
          return false;
        }
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SelectPenaltyGold parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SelectPenaltyGold) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int playerId_ ;
      /**
       * required uint32 player_id = 1;
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * required uint32 player_id = 1;
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * required uint32 player_id = 1;
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000001;
        playerId_ = value;
        onChanged();
        return this;
      }
      /**
       * required uint32 player_id = 1;
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        onChanged();
        return this;
      }

      private int cost_ ;
      /**
       * optional sint32 cost = 2;
       */
      public boolean hasCost() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional sint32 cost = 2;
       */
      public int getCost() {
        return cost_;
      }
      /**
       * optional sint32 cost = 2;
       */
      public Builder setCost(int value) {
        bitField0_ |= 0x00000002;
        cost_ = value;
        onChanged();
        return this;
      }
      /**
       * optional sint32 cost = 2;
       */
      public Builder clearCost() {
        bitField0_ = (bitField0_ & ~0x00000002);
        cost_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_SelectPenaltyGold)
    }

    static {
      defaultInstance = new CDOTAUserMsg_SelectPenaltyGold(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_SelectPenaltyGold)
  }

  public interface CDOTAUserMsg_RollDiceResultOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_RollDiceResult)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional uint32 player_id = 1;
     */
    boolean hasPlayerId();
    /**
     * optional uint32 player_id = 1;
     */
    int getPlayerId();

    /**
     * optional uint32 channel_type = 2;
     */
    boolean hasChannelType();
    /**
     * optional uint32 channel_type = 2;
     */
    int getChannelType();

    /**
     * optional uint32 roll_min = 3;
     */
    boolean hasRollMin();
    /**
     * optional uint32 roll_min = 3;
     */
    int getRollMin();

    /**
     * optional uint32 roll_max = 4;
     */
    boolean hasRollMax();
    /**
     * optional uint32 roll_max = 4;
     */
    int getRollMax();

    /**
     * optional uint32 result = 5;
     */
    boolean hasResult();
    /**
     * optional uint32 result = 5;
     */
    int getResult();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_RollDiceResult}
   */
  public static final class CDOTAUserMsg_RollDiceResult extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_RollDiceResult)
      CDOTAUserMsg_RollDiceResultOrBuilder {
    // Use CDOTAUserMsg_RollDiceResult.newBuilder() to construct.
    private CDOTAUserMsg_RollDiceResult(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_RollDiceResult(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_RollDiceResult defaultInstance;
    public static CDOTAUserMsg_RollDiceResult getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_RollDiceResult getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_RollDiceResult(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              playerId_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              channelType_ = input.readUInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              rollMin_ = input.readUInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              rollMax_ = input.readUInt32();
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              result_ = input.readUInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_RollDiceResult_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_RollDiceResult_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_RollDiceResult.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_RollDiceResult.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_RollDiceResult parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_RollDiceResult(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int PLAYER_ID_FIELD_NUMBER = 1;
    private int playerId_;
    /**
     * optional uint32 player_id = 1;
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional uint32 player_id = 1;
     */
    public int getPlayerId() {
      return playerId_;
    }

    public static final int CHANNEL_TYPE_FIELD_NUMBER = 2;
    private int channelType_;
    /**
     * optional uint32 channel_type = 2;
     */
    public boolean hasChannelType() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional uint32 channel_type = 2;
     */
    public int getChannelType() {
      return channelType_;
    }

    public static final int ROLL_MIN_FIELD_NUMBER = 3;
    private int rollMin_;
    /**
     * optional uint32 roll_min = 3;
     */
    public boolean hasRollMin() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional uint32 roll_min = 3;
     */
    public int getRollMin() {
      return rollMin_;
    }

    public static final int ROLL_MAX_FIELD_NUMBER = 4;
    private int rollMax_;
    /**
     * optional uint32 roll_max = 4;
     */
    public boolean hasRollMax() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional uint32 roll_max = 4;
     */
    public int getRollMax() {
      return rollMax_;
    }

    public static final int RESULT_FIELD_NUMBER = 5;
    private int result_;
    /**
     * optional uint32 result = 5;
     */
    public boolean hasResult() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * optional uint32 result = 5;
     */
    public int getResult() {
      return result_;
    }

    private void initFields() {
      playerId_ = 0;
      channelType_ = 0;
      rollMin_ = 0;
      rollMax_ = 0;
      result_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, channelType_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeUInt32(3, rollMin_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeUInt32(4, rollMax_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeUInt32(5, result_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, channelType_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, rollMin_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(4, rollMax_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(5, result_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_RollDiceResult parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_RollDiceResult parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_RollDiceResult parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_RollDiceResult parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_RollDiceResult parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_RollDiceResult parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_RollDiceResult parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_RollDiceResult parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_RollDiceResult parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_RollDiceResult parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_RollDiceResult prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_RollDiceResult}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_RollDiceResult)
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_RollDiceResultOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_RollDiceResult_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_RollDiceResult_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_RollDiceResult.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_RollDiceResult.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_RollDiceResult.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        channelType_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        rollMin_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        rollMax_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        result_ = 0;
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_RollDiceResult_descriptor;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_RollDiceResult getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_RollDiceResult.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_RollDiceResult build() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_RollDiceResult result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_RollDiceResult buildPartial() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_RollDiceResult result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_RollDiceResult(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.playerId_ = playerId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.channelType_ = channelType_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.rollMin_ = rollMin_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.rollMax_ = rollMax_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.result_ = result_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_RollDiceResult) {
          return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_RollDiceResult)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_RollDiceResult other) {
        if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_RollDiceResult.getDefaultInstance()) return this;
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        if (other.hasChannelType()) {
          setChannelType(other.getChannelType());
        }
        if (other.hasRollMin()) {
          setRollMin(other.getRollMin());
        }
        if (other.hasRollMax()) {
          setRollMax(other.getRollMax());
        }
        if (other.hasResult()) {
          setResult(other.getResult());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_RollDiceResult parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_RollDiceResult) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int playerId_ ;
      /**
       * optional uint32 player_id = 1;
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional uint32 player_id = 1;
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * optional uint32 player_id = 1;
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000001;
        playerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 player_id = 1;
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        onChanged();
        return this;
      }

      private int channelType_ ;
      /**
       * optional uint32 channel_type = 2;
       */
      public boolean hasChannelType() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional uint32 channel_type = 2;
       */
      public int getChannelType() {
        return channelType_;
      }
      /**
       * optional uint32 channel_type = 2;
       */
      public Builder setChannelType(int value) {
        bitField0_ |= 0x00000002;
        channelType_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 channel_type = 2;
       */
      public Builder clearChannelType() {
        bitField0_ = (bitField0_ & ~0x00000002);
        channelType_ = 0;
        onChanged();
        return this;
      }

      private int rollMin_ ;
      /**
       * optional uint32 roll_min = 3;
       */
      public boolean hasRollMin() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional uint32 roll_min = 3;
       */
      public int getRollMin() {
        return rollMin_;
      }
      /**
       * optional uint32 roll_min = 3;
       */
      public Builder setRollMin(int value) {
        bitField0_ |= 0x00000004;
        rollMin_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 roll_min = 3;
       */
      public Builder clearRollMin() {
        bitField0_ = (bitField0_ & ~0x00000004);
        rollMin_ = 0;
        onChanged();
        return this;
      }

      private int rollMax_ ;
      /**
       * optional uint32 roll_max = 4;
       */
      public boolean hasRollMax() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional uint32 roll_max = 4;
       */
      public int getRollMax() {
        return rollMax_;
      }
      /**
       * optional uint32 roll_max = 4;
       */
      public Builder setRollMax(int value) {
        bitField0_ |= 0x00000008;
        rollMax_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 roll_max = 4;
       */
      public Builder clearRollMax() {
        bitField0_ = (bitField0_ & ~0x00000008);
        rollMax_ = 0;
        onChanged();
        return this;
      }

      private int result_ ;
      /**
       * optional uint32 result = 5;
       */
      public boolean hasResult() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * optional uint32 result = 5;
       */
      public int getResult() {
        return result_;
      }
      /**
       * optional uint32 result = 5;
       */
      public Builder setResult(int value) {
        bitField0_ |= 0x00000010;
        result_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 result = 5;
       */
      public Builder clearResult() {
        bitField0_ = (bitField0_ & ~0x00000010);
        result_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_RollDiceResult)
    }

    static {
      defaultInstance = new CDOTAUserMsg_RollDiceResult(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_RollDiceResult)
  }

  public interface CDOTAUserMsg_FlipCoinResultOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_FlipCoinResult)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional uint32 player_id = 1;
     */
    boolean hasPlayerId();
    /**
     * optional uint32 player_id = 1;
     */
    int getPlayerId();

    /**
     * optional uint32 channel_type = 2;
     */
    boolean hasChannelType();
    /**
     * optional uint32 channel_type = 2;
     */
    int getChannelType();

    /**
     * optional bool result = 3;
     */
    boolean hasResult();
    /**
     * optional bool result = 3;
     */
    boolean getResult();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_FlipCoinResult}
   */
  public static final class CDOTAUserMsg_FlipCoinResult extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_FlipCoinResult)
      CDOTAUserMsg_FlipCoinResultOrBuilder {
    // Use CDOTAUserMsg_FlipCoinResult.newBuilder() to construct.
    private CDOTAUserMsg_FlipCoinResult(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_FlipCoinResult(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_FlipCoinResult defaultInstance;
    public static CDOTAUserMsg_FlipCoinResult getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_FlipCoinResult getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_FlipCoinResult(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              playerId_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              channelType_ = input.readUInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              result_ = input.readBool();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_FlipCoinResult_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_FlipCoinResult_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_FlipCoinResult.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_FlipCoinResult.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_FlipCoinResult parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_FlipCoinResult(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int PLAYER_ID_FIELD_NUMBER = 1;
    private int playerId_;
    /**
     * optional uint32 player_id = 1;
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional uint32 player_id = 1;
     */
    public int getPlayerId() {
      return playerId_;
    }

    public static final int CHANNEL_TYPE_FIELD_NUMBER = 2;
    private int channelType_;
    /**
     * optional uint32 channel_type = 2;
     */
    public boolean hasChannelType() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional uint32 channel_type = 2;
     */
    public int getChannelType() {
      return channelType_;
    }

    public static final int RESULT_FIELD_NUMBER = 3;
    private boolean result_;
    /**
     * optional bool result = 3;
     */
    public boolean hasResult() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional bool result = 3;
     */
    public boolean getResult() {
      return result_;
    }

    private void initFields() {
      playerId_ = 0;
      channelType_ = 0;
      result_ = false;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, channelType_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBool(3, result_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, channelType_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(3, result_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_FlipCoinResult parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_FlipCoinResult parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_FlipCoinResult parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_FlipCoinResult parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_FlipCoinResult parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_FlipCoinResult parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_FlipCoinResult parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_FlipCoinResult parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_FlipCoinResult parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_FlipCoinResult parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_FlipCoinResult prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_FlipCoinResult}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_FlipCoinResult)
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_FlipCoinResultOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_FlipCoinResult_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_FlipCoinResult_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_FlipCoinResult.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_FlipCoinResult.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_FlipCoinResult.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        channelType_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        result_ = false;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_FlipCoinResult_descriptor;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_FlipCoinResult getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_FlipCoinResult.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_FlipCoinResult build() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_FlipCoinResult result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_FlipCoinResult buildPartial() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_FlipCoinResult result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_FlipCoinResult(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.playerId_ = playerId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.channelType_ = channelType_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.result_ = result_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_FlipCoinResult) {
          return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_FlipCoinResult)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_FlipCoinResult other) {
        if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_FlipCoinResult.getDefaultInstance()) return this;
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        if (other.hasChannelType()) {
          setChannelType(other.getChannelType());
        }
        if (other.hasResult()) {
          setResult(other.getResult());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_FlipCoinResult parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_FlipCoinResult) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int playerId_ ;
      /**
       * optional uint32 player_id = 1;
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional uint32 player_id = 1;
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * optional uint32 player_id = 1;
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000001;
        playerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 player_id = 1;
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        onChanged();
        return this;
      }

      private int channelType_ ;
      /**
       * optional uint32 channel_type = 2;
       */
      public boolean hasChannelType() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional uint32 channel_type = 2;
       */
      public int getChannelType() {
        return channelType_;
      }
      /**
       * optional uint32 channel_type = 2;
       */
      public Builder setChannelType(int value) {
        bitField0_ |= 0x00000002;
        channelType_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 channel_type = 2;
       */
      public Builder clearChannelType() {
        bitField0_ = (bitField0_ & ~0x00000002);
        channelType_ = 0;
        onChanged();
        return this;
      }

      private boolean result_ ;
      /**
       * optional bool result = 3;
       */
      public boolean hasResult() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional bool result = 3;
       */
      public boolean getResult() {
        return result_;
      }
      /**
       * optional bool result = 3;
       */
      public Builder setResult(boolean value) {
        bitField0_ |= 0x00000004;
        result_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool result = 3;
       */
      public Builder clearResult() {
        bitField0_ = (bitField0_ & ~0x00000004);
        result_ = false;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_FlipCoinResult)
    }

    static {
      defaultInstance = new CDOTAUserMsg_FlipCoinResult(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_FlipCoinResult)
  }

  public interface CDOTAUserMessage_TeamCaptainChangedOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMessage_TeamCaptainChanged)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional uint32 team = 1;
     */
    boolean hasTeam();
    /**
     * optional uint32 team = 1;
     */
    int getTeam();

    /**
     * optional uint32 captain_player_id = 2;
     */
    boolean hasCaptainPlayerId();
    /**
     * optional uint32 captain_player_id = 2;
     */
    int getCaptainPlayerId();
  }
  /**
   * Protobuf type {@code CDOTAUserMessage_TeamCaptainChanged}
   */
  public static final class CDOTAUserMessage_TeamCaptainChanged extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMessage_TeamCaptainChanged)
      CDOTAUserMessage_TeamCaptainChangedOrBuilder {
    // Use CDOTAUserMessage_TeamCaptainChanged.newBuilder() to construct.
    private CDOTAUserMessage_TeamCaptainChanged(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMessage_TeamCaptainChanged(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMessage_TeamCaptainChanged defaultInstance;
    public static CDOTAUserMessage_TeamCaptainChanged getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMessage_TeamCaptainChanged getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMessage_TeamCaptainChanged(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              team_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              captainPlayerId_ = input.readUInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMessage_TeamCaptainChanged_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMessage_TeamCaptainChanged_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMessage_TeamCaptainChanged.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMessage_TeamCaptainChanged.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMessage_TeamCaptainChanged parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMessage_TeamCaptainChanged(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int TEAM_FIELD_NUMBER = 1;
    private int team_;
    /**
     * optional uint32 team = 1;
     */
    public boolean hasTeam() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional uint32 team = 1;
     */
    public int getTeam() {
      return team_;
    }

    public static final int CAPTAIN_PLAYER_ID_FIELD_NUMBER = 2;
    private int captainPlayerId_;
    /**
     * optional uint32 captain_player_id = 2;
     */
    public boolean hasCaptainPlayerId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional uint32 captain_player_id = 2;
     */
    public int getCaptainPlayerId() {
      return captainPlayerId_;
    }

    private void initFields() {
      team_ = 0;
      captainPlayerId_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, team_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, captainPlayerId_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, team_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, captainPlayerId_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMessage_TeamCaptainChanged parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMessage_TeamCaptainChanged parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMessage_TeamCaptainChanged parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMessage_TeamCaptainChanged parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMessage_TeamCaptainChanged parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMessage_TeamCaptainChanged parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMessage_TeamCaptainChanged parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMessage_TeamCaptainChanged parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMessage_TeamCaptainChanged parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMessage_TeamCaptainChanged parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMessage_TeamCaptainChanged prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMessage_TeamCaptainChanged}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMessage_TeamCaptainChanged)
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMessage_TeamCaptainChangedOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMessage_TeamCaptainChanged_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMessage_TeamCaptainChanged_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMessage_TeamCaptainChanged.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMessage_TeamCaptainChanged.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMessage_TeamCaptainChanged.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        team_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        captainPlayerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMessage_TeamCaptainChanged_descriptor;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMessage_TeamCaptainChanged getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMessage_TeamCaptainChanged.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMessage_TeamCaptainChanged build() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMessage_TeamCaptainChanged result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMessage_TeamCaptainChanged buildPartial() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMessage_TeamCaptainChanged result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMessage_TeamCaptainChanged(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.team_ = team_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.captainPlayerId_ = captainPlayerId_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMessage_TeamCaptainChanged) {
          return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMessage_TeamCaptainChanged)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMessage_TeamCaptainChanged other) {
        if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMessage_TeamCaptainChanged.getDefaultInstance()) return this;
        if (other.hasTeam()) {
          setTeam(other.getTeam());
        }
        if (other.hasCaptainPlayerId()) {
          setCaptainPlayerId(other.getCaptainPlayerId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMessage_TeamCaptainChanged parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMessage_TeamCaptainChanged) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int team_ ;
      /**
       * optional uint32 team = 1;
       */
      public boolean hasTeam() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional uint32 team = 1;
       */
      public int getTeam() {
        return team_;
      }
      /**
       * optional uint32 team = 1;
       */
      public Builder setTeam(int value) {
        bitField0_ |= 0x00000001;
        team_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 team = 1;
       */
      public Builder clearTeam() {
        bitField0_ = (bitField0_ & ~0x00000001);
        team_ = 0;
        onChanged();
        return this;
      }

      private int captainPlayerId_ ;
      /**
       * optional uint32 captain_player_id = 2;
       */
      public boolean hasCaptainPlayerId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional uint32 captain_player_id = 2;
       */
      public int getCaptainPlayerId() {
        return captainPlayerId_;
      }
      /**
       * optional uint32 captain_player_id = 2;
       */
      public Builder setCaptainPlayerId(int value) {
        bitField0_ |= 0x00000002;
        captainPlayerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 captain_player_id = 2;
       */
      public Builder clearCaptainPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        captainPlayerId_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMessage_TeamCaptainChanged)
    }

    static {
      defaultInstance = new CDOTAUserMessage_TeamCaptainChanged(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMessage_TeamCaptainChanged)
  }

  public interface CDOTAUserMsg_HeroRelicProgressOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_HeroRelicProgress)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional uint32 hero_relic_type = 1;
     */
    boolean hasHeroRelicType();
    /**
     * optional uint32 hero_relic_type = 1;
     */
    int getHeroRelicType();

    /**
     * optional uint32 value = 2;
     */
    boolean hasValue();
    /**
     * optional uint32 value = 2;
     */
    int getValue();

    /**
     * optional uint32 ehandle = 3;
     */
    boolean hasEhandle();
    /**
     * optional uint32 ehandle = 3;
     */
    int getEhandle();

    /**
     * optional uint32 event_id = 4;
     */
    boolean hasEventId();
    /**
     * optional uint32 event_id = 4;
     */
    int getEventId();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_HeroRelicProgress}
   */
  public static final class CDOTAUserMsg_HeroRelicProgress extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_HeroRelicProgress)
      CDOTAUserMsg_HeroRelicProgressOrBuilder {
    // Use CDOTAUserMsg_HeroRelicProgress.newBuilder() to construct.
    private CDOTAUserMsg_HeroRelicProgress(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_HeroRelicProgress(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_HeroRelicProgress defaultInstance;
    public static CDOTAUserMsg_HeroRelicProgress getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_HeroRelicProgress getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_HeroRelicProgress(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              heroRelicType_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              value_ = input.readUInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              ehandle_ = input.readUInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              eventId_ = input.readUInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_HeroRelicProgress_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_HeroRelicProgress_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HeroRelicProgress.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HeroRelicProgress.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_HeroRelicProgress parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_HeroRelicProgress(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int HERO_RELIC_TYPE_FIELD_NUMBER = 1;
    private int heroRelicType_;
    /**
     * optional uint32 hero_relic_type = 1;
     */
    public boolean hasHeroRelicType() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional uint32 hero_relic_type = 1;
     */
    public int getHeroRelicType() {
      return heroRelicType_;
    }

    public static final int VALUE_FIELD_NUMBER = 2;
    private int value_;
    /**
     * optional uint32 value = 2;
     */
    public boolean hasValue() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional uint32 value = 2;
     */
    public int getValue() {
      return value_;
    }

    public static final int EHANDLE_FIELD_NUMBER = 3;
    private int ehandle_;
    /**
     * optional uint32 ehandle = 3;
     */
    public boolean hasEhandle() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional uint32 ehandle = 3;
     */
    public int getEhandle() {
      return ehandle_;
    }

    public static final int EVENT_ID_FIELD_NUMBER = 4;
    private int eventId_;
    /**
     * optional uint32 event_id = 4;
     */
    public boolean hasEventId() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional uint32 event_id = 4;
     */
    public int getEventId() {
      return eventId_;
    }

    private void initFields() {
      heroRelicType_ = 0;
      value_ = 0;
      ehandle_ = 0;
      eventId_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, heroRelicType_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, value_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeUInt32(3, ehandle_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeUInt32(4, eventId_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, heroRelicType_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, value_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, ehandle_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(4, eventId_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HeroRelicProgress parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HeroRelicProgress parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HeroRelicProgress parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HeroRelicProgress parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HeroRelicProgress parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HeroRelicProgress parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HeroRelicProgress parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HeroRelicProgress parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HeroRelicProgress parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HeroRelicProgress parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HeroRelicProgress prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_HeroRelicProgress}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_HeroRelicProgress)
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HeroRelicProgressOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_HeroRelicProgress_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_HeroRelicProgress_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HeroRelicProgress.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HeroRelicProgress.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HeroRelicProgress.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        heroRelicType_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        value_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        ehandle_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        eventId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_HeroRelicProgress_descriptor;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HeroRelicProgress getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HeroRelicProgress.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HeroRelicProgress build() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HeroRelicProgress result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HeroRelicProgress buildPartial() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HeroRelicProgress result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HeroRelicProgress(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.heroRelicType_ = heroRelicType_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.value_ = value_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.ehandle_ = ehandle_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.eventId_ = eventId_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HeroRelicProgress) {
          return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HeroRelicProgress)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HeroRelicProgress other) {
        if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HeroRelicProgress.getDefaultInstance()) return this;
        if (other.hasHeroRelicType()) {
          setHeroRelicType(other.getHeroRelicType());
        }
        if (other.hasValue()) {
          setValue(other.getValue());
        }
        if (other.hasEhandle()) {
          setEhandle(other.getEhandle());
        }
        if (other.hasEventId()) {
          setEventId(other.getEventId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HeroRelicProgress parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HeroRelicProgress) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int heroRelicType_ ;
      /**
       * optional uint32 hero_relic_type = 1;
       */
      public boolean hasHeroRelicType() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional uint32 hero_relic_type = 1;
       */
      public int getHeroRelicType() {
        return heroRelicType_;
      }
      /**
       * optional uint32 hero_relic_type = 1;
       */
      public Builder setHeroRelicType(int value) {
        bitField0_ |= 0x00000001;
        heroRelicType_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 hero_relic_type = 1;
       */
      public Builder clearHeroRelicType() {
        bitField0_ = (bitField0_ & ~0x00000001);
        heroRelicType_ = 0;
        onChanged();
        return this;
      }

      private int value_ ;
      /**
       * optional uint32 value = 2;
       */
      public boolean hasValue() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional uint32 value = 2;
       */
      public int getValue() {
        return value_;
      }
      /**
       * optional uint32 value = 2;
       */
      public Builder setValue(int value) {
        bitField0_ |= 0x00000002;
        value_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 value = 2;
       */
      public Builder clearValue() {
        bitField0_ = (bitField0_ & ~0x00000002);
        value_ = 0;
        onChanged();
        return this;
      }

      private int ehandle_ ;
      /**
       * optional uint32 ehandle = 3;
       */
      public boolean hasEhandle() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional uint32 ehandle = 3;
       */
      public int getEhandle() {
        return ehandle_;
      }
      /**
       * optional uint32 ehandle = 3;
       */
      public Builder setEhandle(int value) {
        bitField0_ |= 0x00000004;
        ehandle_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 ehandle = 3;
       */
      public Builder clearEhandle() {
        bitField0_ = (bitField0_ & ~0x00000004);
        ehandle_ = 0;
        onChanged();
        return this;
      }

      private int eventId_ ;
      /**
       * optional uint32 event_id = 4;
       */
      public boolean hasEventId() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional uint32 event_id = 4;
       */
      public int getEventId() {
        return eventId_;
      }
      /**
       * optional uint32 event_id = 4;
       */
      public Builder setEventId(int value) {
        bitField0_ |= 0x00000008;
        eventId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 event_id = 4;
       */
      public Builder clearEventId() {
        bitField0_ = (bitField0_ & ~0x00000008);
        eventId_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_HeroRelicProgress)
    }

    static {
      defaultInstance = new CDOTAUserMsg_HeroRelicProgress(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_HeroRelicProgress)
  }

  public interface CDOTAUserMsg_DamageReportOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_DamageReport)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional uint32 player_id = 1;
     */
    boolean hasPlayerId();
    /**
     * optional uint32 player_id = 1;
     */
    int getPlayerId();

    /**
     * optional uint32 target_hero_id = 2;
     */
    boolean hasTargetHeroId();
    /**
     * optional uint32 target_hero_id = 2;
     */
    int getTargetHeroId();

    /**
     * optional uint32 source_hero_id = 3;
     */
    boolean hasSourceHeroId();
    /**
     * optional uint32 source_hero_id = 3;
     */
    int getSourceHeroId();

    /**
     * optional int32 damage_amount = 4;
     */
    boolean hasDamageAmount();
    /**
     * optional int32 damage_amount = 4;
     */
    int getDamageAmount();

    /**
     * optional bool broadcast = 5;
     */
    boolean hasBroadcast();
    /**
     * optional bool broadcast = 5;
     */
    boolean getBroadcast();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_DamageReport}
   */
  public static final class CDOTAUserMsg_DamageReport extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_DamageReport)
      CDOTAUserMsg_DamageReportOrBuilder {
    // Use CDOTAUserMsg_DamageReport.newBuilder() to construct.
    private CDOTAUserMsg_DamageReport(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_DamageReport(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_DamageReport defaultInstance;
    public static CDOTAUserMsg_DamageReport getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_DamageReport getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_DamageReport(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              playerId_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              targetHeroId_ = input.readUInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              sourceHeroId_ = input.readUInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              damageAmount_ = input.readInt32();
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              broadcast_ = input.readBool();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_DamageReport_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_DamageReport_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DamageReport.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DamageReport.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_DamageReport parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_DamageReport(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int PLAYER_ID_FIELD_NUMBER = 1;
    private int playerId_;
    /**
     * optional uint32 player_id = 1;
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional uint32 player_id = 1;
     */
    public int getPlayerId() {
      return playerId_;
    }

    public static final int TARGET_HERO_ID_FIELD_NUMBER = 2;
    private int targetHeroId_;
    /**
     * optional uint32 target_hero_id = 2;
     */
    public boolean hasTargetHeroId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional uint32 target_hero_id = 2;
     */
    public int getTargetHeroId() {
      return targetHeroId_;
    }

    public static final int SOURCE_HERO_ID_FIELD_NUMBER = 3;
    private int sourceHeroId_;
    /**
     * optional uint32 source_hero_id = 3;
     */
    public boolean hasSourceHeroId() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional uint32 source_hero_id = 3;
     */
    public int getSourceHeroId() {
      return sourceHeroId_;
    }

    public static final int DAMAGE_AMOUNT_FIELD_NUMBER = 4;
    private int damageAmount_;
    /**
     * optional int32 damage_amount = 4;
     */
    public boolean hasDamageAmount() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional int32 damage_amount = 4;
     */
    public int getDamageAmount() {
      return damageAmount_;
    }

    public static final int BROADCAST_FIELD_NUMBER = 5;
    private boolean broadcast_;
    /**
     * optional bool broadcast = 5;
     */
    public boolean hasBroadcast() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * optional bool broadcast = 5;
     */
    public boolean getBroadcast() {
      return broadcast_;
    }

    private void initFields() {
      playerId_ = 0;
      targetHeroId_ = 0;
      sourceHeroId_ = 0;
      damageAmount_ = 0;
      broadcast_ = false;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, targetHeroId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeUInt32(3, sourceHeroId_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeInt32(4, damageAmount_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeBool(5, broadcast_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, targetHeroId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, sourceHeroId_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, damageAmount_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(5, broadcast_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DamageReport parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DamageReport parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DamageReport parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DamageReport parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DamageReport parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DamageReport parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DamageReport parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DamageReport parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DamageReport parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DamageReport parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DamageReport prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_DamageReport}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_DamageReport)
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DamageReportOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_DamageReport_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_DamageReport_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DamageReport.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DamageReport.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DamageReport.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        targetHeroId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        sourceHeroId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        damageAmount_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        broadcast_ = false;
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_DamageReport_descriptor;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DamageReport getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DamageReport.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DamageReport build() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DamageReport result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DamageReport buildPartial() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DamageReport result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DamageReport(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.playerId_ = playerId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.targetHeroId_ = targetHeroId_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.sourceHeroId_ = sourceHeroId_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.damageAmount_ = damageAmount_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.broadcast_ = broadcast_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DamageReport) {
          return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DamageReport)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DamageReport other) {
        if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DamageReport.getDefaultInstance()) return this;
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        if (other.hasTargetHeroId()) {
          setTargetHeroId(other.getTargetHeroId());
        }
        if (other.hasSourceHeroId()) {
          setSourceHeroId(other.getSourceHeroId());
        }
        if (other.hasDamageAmount()) {
          setDamageAmount(other.getDamageAmount());
        }
        if (other.hasBroadcast()) {
          setBroadcast(other.getBroadcast());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DamageReport parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DamageReport) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int playerId_ ;
      /**
       * optional uint32 player_id = 1;
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional uint32 player_id = 1;
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * optional uint32 player_id = 1;
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000001;
        playerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 player_id = 1;
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        onChanged();
        return this;
      }

      private int targetHeroId_ ;
      /**
       * optional uint32 target_hero_id = 2;
       */
      public boolean hasTargetHeroId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional uint32 target_hero_id = 2;
       */
      public int getTargetHeroId() {
        return targetHeroId_;
      }
      /**
       * optional uint32 target_hero_id = 2;
       */
      public Builder setTargetHeroId(int value) {
        bitField0_ |= 0x00000002;
        targetHeroId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 target_hero_id = 2;
       */
      public Builder clearTargetHeroId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        targetHeroId_ = 0;
        onChanged();
        return this;
      }

      private int sourceHeroId_ ;
      /**
       * optional uint32 source_hero_id = 3;
       */
      public boolean hasSourceHeroId() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional uint32 source_hero_id = 3;
       */
      public int getSourceHeroId() {
        return sourceHeroId_;
      }
      /**
       * optional uint32 source_hero_id = 3;
       */
      public Builder setSourceHeroId(int value) {
        bitField0_ |= 0x00000004;
        sourceHeroId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 source_hero_id = 3;
       */
      public Builder clearSourceHeroId() {
        bitField0_ = (bitField0_ & ~0x00000004);
        sourceHeroId_ = 0;
        onChanged();
        return this;
      }

      private int damageAmount_ ;
      /**
       * optional int32 damage_amount = 4;
       */
      public boolean hasDamageAmount() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional int32 damage_amount = 4;
       */
      public int getDamageAmount() {
        return damageAmount_;
      }
      /**
       * optional int32 damage_amount = 4;
       */
      public Builder setDamageAmount(int value) {
        bitField0_ |= 0x00000008;
        damageAmount_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 damage_amount = 4;
       */
      public Builder clearDamageAmount() {
        bitField0_ = (bitField0_ & ~0x00000008);
        damageAmount_ = 0;
        onChanged();
        return this;
      }

      private boolean broadcast_ ;
      /**
       * optional bool broadcast = 5;
       */
      public boolean hasBroadcast() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * optional bool broadcast = 5;
       */
      public boolean getBroadcast() {
        return broadcast_;
      }
      /**
       * optional bool broadcast = 5;
       */
      public Builder setBroadcast(boolean value) {
        bitField0_ |= 0x00000010;
        broadcast_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool broadcast = 5;
       */
      public Builder clearBroadcast() {
        bitField0_ = (bitField0_ & ~0x00000010);
        broadcast_ = false;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_DamageReport)
    }

    static {
      defaultInstance = new CDOTAUserMsg_DamageReport(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_DamageReport)
  }

  public interface CDOTAUserMsg_SalutePlayerOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_SalutePlayer)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional int32 source_player_id = 1;
     */
    boolean hasSourcePlayerId();
    /**
     * optional int32 source_player_id = 1;
     */
    int getSourcePlayerId();

    /**
     * optional int32 target_player_id = 2;
     */
    boolean hasTargetPlayerId();
    /**
     * optional int32 target_player_id = 2;
     */
    int getTargetPlayerId();

    /**
     * optional uint32 tip_amount = 3;
     */
    boolean hasTipAmount();
    /**
     * optional uint32 tip_amount = 3;
     */
    int getTipAmount();

    /**
     * optional uint32 event_id = 4;
     */
    boolean hasEventId();
    /**
     * optional uint32 event_id = 4;
     */
    int getEventId();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_SalutePlayer}
   */
  public static final class CDOTAUserMsg_SalutePlayer extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_SalutePlayer)
      CDOTAUserMsg_SalutePlayerOrBuilder {
    // Use CDOTAUserMsg_SalutePlayer.newBuilder() to construct.
    private CDOTAUserMsg_SalutePlayer(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_SalutePlayer(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_SalutePlayer defaultInstance;
    public static CDOTAUserMsg_SalutePlayer getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_SalutePlayer getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_SalutePlayer(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              sourcePlayerId_ = input.readInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              targetPlayerId_ = input.readInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              tipAmount_ = input.readUInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              eventId_ = input.readUInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_SalutePlayer_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_SalutePlayer_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SalutePlayer.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SalutePlayer.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_SalutePlayer parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_SalutePlayer(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int SOURCE_PLAYER_ID_FIELD_NUMBER = 1;
    private int sourcePlayerId_;
    /**
     * optional int32 source_player_id = 1;
     */
    public boolean hasSourcePlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 source_player_id = 1;
     */
    public int getSourcePlayerId() {
      return sourcePlayerId_;
    }

    public static final int TARGET_PLAYER_ID_FIELD_NUMBER = 2;
    private int targetPlayerId_;
    /**
     * optional int32 target_player_id = 2;
     */
    public boolean hasTargetPlayerId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional int32 target_player_id = 2;
     */
    public int getTargetPlayerId() {
      return targetPlayerId_;
    }

    public static final int TIP_AMOUNT_FIELD_NUMBER = 3;
    private int tipAmount_;
    /**
     * optional uint32 tip_amount = 3;
     */
    public boolean hasTipAmount() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional uint32 tip_amount = 3;
     */
    public int getTipAmount() {
      return tipAmount_;
    }

    public static final int EVENT_ID_FIELD_NUMBER = 4;
    private int eventId_;
    /**
     * optional uint32 event_id = 4;
     */
    public boolean hasEventId() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional uint32 event_id = 4;
     */
    public int getEventId() {
      return eventId_;
    }

    private void initFields() {
      sourcePlayerId_ = 0;
      targetPlayerId_ = 0;
      tipAmount_ = 0;
      eventId_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, sourcePlayerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, targetPlayerId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeUInt32(3, tipAmount_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeUInt32(4, eventId_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, sourcePlayerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, targetPlayerId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, tipAmount_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(4, eventId_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SalutePlayer parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SalutePlayer parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SalutePlayer parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SalutePlayer parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SalutePlayer parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SalutePlayer parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SalutePlayer parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SalutePlayer parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SalutePlayer parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SalutePlayer parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SalutePlayer prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_SalutePlayer}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_SalutePlayer)
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SalutePlayerOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_SalutePlayer_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_SalutePlayer_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SalutePlayer.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SalutePlayer.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SalutePlayer.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        sourcePlayerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        targetPlayerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        tipAmount_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        eventId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_SalutePlayer_descriptor;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SalutePlayer getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SalutePlayer.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SalutePlayer build() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SalutePlayer result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SalutePlayer buildPartial() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SalutePlayer result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SalutePlayer(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.sourcePlayerId_ = sourcePlayerId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.targetPlayerId_ = targetPlayerId_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.tipAmount_ = tipAmount_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.eventId_ = eventId_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SalutePlayer) {
          return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SalutePlayer)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SalutePlayer other) {
        if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SalutePlayer.getDefaultInstance()) return this;
        if (other.hasSourcePlayerId()) {
          setSourcePlayerId(other.getSourcePlayerId());
        }
        if (other.hasTargetPlayerId()) {
          setTargetPlayerId(other.getTargetPlayerId());
        }
        if (other.hasTipAmount()) {
          setTipAmount(other.getTipAmount());
        }
        if (other.hasEventId()) {
          setEventId(other.getEventId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SalutePlayer parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_SalutePlayer) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int sourcePlayerId_ ;
      /**
       * optional int32 source_player_id = 1;
       */
      public boolean hasSourcePlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 source_player_id = 1;
       */
      public int getSourcePlayerId() {
        return sourcePlayerId_;
      }
      /**
       * optional int32 source_player_id = 1;
       */
      public Builder setSourcePlayerId(int value) {
        bitField0_ |= 0x00000001;
        sourcePlayerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 source_player_id = 1;
       */
      public Builder clearSourcePlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        sourcePlayerId_ = 0;
        onChanged();
        return this;
      }

      private int targetPlayerId_ ;
      /**
       * optional int32 target_player_id = 2;
       */
      public boolean hasTargetPlayerId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional int32 target_player_id = 2;
       */
      public int getTargetPlayerId() {
        return targetPlayerId_;
      }
      /**
       * optional int32 target_player_id = 2;
       */
      public Builder setTargetPlayerId(int value) {
        bitField0_ |= 0x00000002;
        targetPlayerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 target_player_id = 2;
       */
      public Builder clearTargetPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        targetPlayerId_ = 0;
        onChanged();
        return this;
      }

      private int tipAmount_ ;
      /**
       * optional uint32 tip_amount = 3;
       */
      public boolean hasTipAmount() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional uint32 tip_amount = 3;
       */
      public int getTipAmount() {
        return tipAmount_;
      }
      /**
       * optional uint32 tip_amount = 3;
       */
      public Builder setTipAmount(int value) {
        bitField0_ |= 0x00000004;
        tipAmount_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 tip_amount = 3;
       */
      public Builder clearTipAmount() {
        bitField0_ = (bitField0_ & ~0x00000004);
        tipAmount_ = 0;
        onChanged();
        return this;
      }

      private int eventId_ ;
      /**
       * optional uint32 event_id = 4;
       */
      public boolean hasEventId() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional uint32 event_id = 4;
       */
      public int getEventId() {
        return eventId_;
      }
      /**
       * optional uint32 event_id = 4;
       */
      public Builder setEventId(int value) {
        bitField0_ |= 0x00000008;
        eventId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 event_id = 4;
       */
      public Builder clearEventId() {
        bitField0_ = (bitField0_ & ~0x00000008);
        eventId_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_SalutePlayer)
    }

    static {
      defaultInstance = new CDOTAUserMsg_SalutePlayer(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_SalutePlayer)
  }

  public interface CDOTAUserMsg_TipAlertOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_TipAlert)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional uint32 player_id = 1;
     */
    boolean hasPlayerId();
    /**
     * optional uint32 player_id = 1;
     */
    int getPlayerId();

    /**
     * optional string tip_text = 2;
     */
    boolean hasTipText();
    /**
     * optional string tip_text = 2;
     */
    java.lang.String getTipText();
    /**
     * optional string tip_text = 2;
     */
    com.google.protobuf.ByteString
        getTipTextBytes();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_TipAlert}
   */
  public static final class CDOTAUserMsg_TipAlert extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_TipAlert)
      CDOTAUserMsg_TipAlertOrBuilder {
    // Use CDOTAUserMsg_TipAlert.newBuilder() to construct.
    private CDOTAUserMsg_TipAlert(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_TipAlert(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_TipAlert defaultInstance;
    public static CDOTAUserMsg_TipAlert getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_TipAlert getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_TipAlert(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              playerId_ = input.readUInt32();
              break;
            }
            case 18: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000002;
              tipText_ = bs;
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_TipAlert_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_TipAlert_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TipAlert.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TipAlert.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_TipAlert parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_TipAlert(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int PLAYER_ID_FIELD_NUMBER = 1;
    private int playerId_;
    /**
     * optional uint32 player_id = 1;
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional uint32 player_id = 1;
     */
    public int getPlayerId() {
      return playerId_;
    }

    public static final int TIP_TEXT_FIELD_NUMBER = 2;
    private java.lang.Object tipText_;
    /**
     * optional string tip_text = 2;
     */
    public boolean hasTipText() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional string tip_text = 2;
     */
    public java.lang.String getTipText() {
      java.lang.Object ref = tipText_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          tipText_ = s;
        }
        return s;
      }
    }
    /**
     * optional string tip_text = 2;
     */
    public com.google.protobuf.ByteString
        getTipTextBytes() {
      java.lang.Object ref = tipText_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        tipText_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private void initFields() {
      playerId_ = 0;
      tipText_ = "";
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBytes(2, getTipTextBytes());
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, getTipTextBytes());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TipAlert parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TipAlert parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TipAlert parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TipAlert parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TipAlert parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TipAlert parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TipAlert parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TipAlert parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TipAlert parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TipAlert parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TipAlert prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_TipAlert}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_TipAlert)
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TipAlertOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_TipAlert_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_TipAlert_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TipAlert.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TipAlert.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TipAlert.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        tipText_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_TipAlert_descriptor;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TipAlert getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TipAlert.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TipAlert build() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TipAlert result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TipAlert buildPartial() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TipAlert result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TipAlert(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.playerId_ = playerId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.tipText_ = tipText_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TipAlert) {
          return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TipAlert)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TipAlert other) {
        if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TipAlert.getDefaultInstance()) return this;
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        if (other.hasTipText()) {
          bitField0_ |= 0x00000002;
          tipText_ = other.tipText_;
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TipAlert parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_TipAlert) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int playerId_ ;
      /**
       * optional uint32 player_id = 1;
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional uint32 player_id = 1;
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * optional uint32 player_id = 1;
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000001;
        playerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 player_id = 1;
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object tipText_ = "";
      /**
       * optional string tip_text = 2;
       */
      public boolean hasTipText() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional string tip_text = 2;
       */
      public java.lang.String getTipText() {
        java.lang.Object ref = tipText_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            tipText_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string tip_text = 2;
       */
      public com.google.protobuf.ByteString
          getTipTextBytes() {
        java.lang.Object ref = tipText_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          tipText_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string tip_text = 2;
       */
      public Builder setTipText(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        tipText_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string tip_text = 2;
       */
      public Builder clearTipText() {
        bitField0_ = (bitField0_ & ~0x00000002);
        tipText_ = getDefaultInstance().getTipText();
        onChanged();
        return this;
      }
      /**
       * optional string tip_text = 2;
       */
      public Builder setTipTextBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        tipText_ = value;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_TipAlert)
    }

    static {
      defaultInstance = new CDOTAUserMsg_TipAlert(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_TipAlert)
  }

  public interface CDOTAUserMsg_ESArcanaComboOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_ESArcanaCombo)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional uint32 ehandle = 1;
     */
    boolean hasEhandle();
    /**
     * optional uint32 ehandle = 1;
     */
    int getEhandle();

    /**
     * optional uint32 combo_count = 2;
     */
    boolean hasComboCount();
    /**
     * optional uint32 combo_count = 2;
     */
    int getComboCount();

    /**
     * optional uint32 arcana_level = 3;
     */
    boolean hasArcanaLevel();
    /**
     * optional uint32 arcana_level = 3;
     */
    int getArcanaLevel();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_ESArcanaCombo}
   */
  public static final class CDOTAUserMsg_ESArcanaCombo extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_ESArcanaCombo)
      CDOTAUserMsg_ESArcanaComboOrBuilder {
    // Use CDOTAUserMsg_ESArcanaCombo.newBuilder() to construct.
    private CDOTAUserMsg_ESArcanaCombo(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_ESArcanaCombo(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_ESArcanaCombo defaultInstance;
    public static CDOTAUserMsg_ESArcanaCombo getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_ESArcanaCombo getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_ESArcanaCombo(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              ehandle_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              comboCount_ = input.readUInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              arcanaLevel_ = input.readUInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ESArcanaCombo_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ESArcanaCombo_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ESArcanaCombo.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ESArcanaCombo.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_ESArcanaCombo parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_ESArcanaCombo(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int EHANDLE_FIELD_NUMBER = 1;
    private int ehandle_;
    /**
     * optional uint32 ehandle = 1;
     */
    public boolean hasEhandle() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional uint32 ehandle = 1;
     */
    public int getEhandle() {
      return ehandle_;
    }

    public static final int COMBO_COUNT_FIELD_NUMBER = 2;
    private int comboCount_;
    /**
     * optional uint32 combo_count = 2;
     */
    public boolean hasComboCount() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional uint32 combo_count = 2;
     */
    public int getComboCount() {
      return comboCount_;
    }

    public static final int ARCANA_LEVEL_FIELD_NUMBER = 3;
    private int arcanaLevel_;
    /**
     * optional uint32 arcana_level = 3;
     */
    public boolean hasArcanaLevel() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional uint32 arcana_level = 3;
     */
    public int getArcanaLevel() {
      return arcanaLevel_;
    }

    private void initFields() {
      ehandle_ = 0;
      comboCount_ = 0;
      arcanaLevel_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, ehandle_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, comboCount_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeUInt32(3, arcanaLevel_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, ehandle_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, comboCount_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, arcanaLevel_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ESArcanaCombo parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ESArcanaCombo parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ESArcanaCombo parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ESArcanaCombo parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ESArcanaCombo parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ESArcanaCombo parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ESArcanaCombo parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ESArcanaCombo parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ESArcanaCombo parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ESArcanaCombo parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ESArcanaCombo prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_ESArcanaCombo}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_ESArcanaCombo)
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ESArcanaComboOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ESArcanaCombo_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ESArcanaCombo_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ESArcanaCombo.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ESArcanaCombo.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ESArcanaCombo.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        ehandle_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        comboCount_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        arcanaLevel_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ESArcanaCombo_descriptor;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ESArcanaCombo getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ESArcanaCombo.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ESArcanaCombo build() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ESArcanaCombo result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ESArcanaCombo buildPartial() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ESArcanaCombo result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ESArcanaCombo(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.ehandle_ = ehandle_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.comboCount_ = comboCount_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.arcanaLevel_ = arcanaLevel_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ESArcanaCombo) {
          return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ESArcanaCombo)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ESArcanaCombo other) {
        if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ESArcanaCombo.getDefaultInstance()) return this;
        if (other.hasEhandle()) {
          setEhandle(other.getEhandle());
        }
        if (other.hasComboCount()) {
          setComboCount(other.getComboCount());
        }
        if (other.hasArcanaLevel()) {
          setArcanaLevel(other.getArcanaLevel());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ESArcanaCombo parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ESArcanaCombo) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int ehandle_ ;
      /**
       * optional uint32 ehandle = 1;
       */
      public boolean hasEhandle() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional uint32 ehandle = 1;
       */
      public int getEhandle() {
        return ehandle_;
      }
      /**
       * optional uint32 ehandle = 1;
       */
      public Builder setEhandle(int value) {
        bitField0_ |= 0x00000001;
        ehandle_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 ehandle = 1;
       */
      public Builder clearEhandle() {
        bitField0_ = (bitField0_ & ~0x00000001);
        ehandle_ = 0;
        onChanged();
        return this;
      }

      private int comboCount_ ;
      /**
       * optional uint32 combo_count = 2;
       */
      public boolean hasComboCount() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional uint32 combo_count = 2;
       */
      public int getComboCount() {
        return comboCount_;
      }
      /**
       * optional uint32 combo_count = 2;
       */
      public Builder setComboCount(int value) {
        bitField0_ |= 0x00000002;
        comboCount_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 combo_count = 2;
       */
      public Builder clearComboCount() {
        bitField0_ = (bitField0_ & ~0x00000002);
        comboCount_ = 0;
        onChanged();
        return this;
      }

      private int arcanaLevel_ ;
      /**
       * optional uint32 arcana_level = 3;
       */
      public boolean hasArcanaLevel() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional uint32 arcana_level = 3;
       */
      public int getArcanaLevel() {
        return arcanaLevel_;
      }
      /**
       * optional uint32 arcana_level = 3;
       */
      public Builder setArcanaLevel(int value) {
        bitField0_ |= 0x00000004;
        arcanaLevel_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 arcana_level = 3;
       */
      public Builder clearArcanaLevel() {
        bitField0_ = (bitField0_ & ~0x00000004);
        arcanaLevel_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_ESArcanaCombo)
    }

    static {
      defaultInstance = new CDOTAUserMsg_ESArcanaCombo(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_ESArcanaCombo)
  }

  public interface CDOTAUserMsg_ESArcanaComboSummaryOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_ESArcanaComboSummary)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional uint32 ehandle = 1;
     */
    boolean hasEhandle();
    /**
     * optional uint32 ehandle = 1;
     */
    int getEhandle();

    /**
     * optional uint32 combo_count = 2;
     */
    boolean hasComboCount();
    /**
     * optional uint32 combo_count = 2;
     */
    int getComboCount();

    /**
     * optional uint32 damage_amount = 3;
     */
    boolean hasDamageAmount();
    /**
     * optional uint32 damage_amount = 3;
     */
    int getDamageAmount();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_ESArcanaComboSummary}
   */
  public static final class CDOTAUserMsg_ESArcanaComboSummary extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_ESArcanaComboSummary)
      CDOTAUserMsg_ESArcanaComboSummaryOrBuilder {
    // Use CDOTAUserMsg_ESArcanaComboSummary.newBuilder() to construct.
    private CDOTAUserMsg_ESArcanaComboSummary(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_ESArcanaComboSummary(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_ESArcanaComboSummary defaultInstance;
    public static CDOTAUserMsg_ESArcanaComboSummary getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_ESArcanaComboSummary getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_ESArcanaComboSummary(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              ehandle_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              comboCount_ = input.readUInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              damageAmount_ = input.readUInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ESArcanaComboSummary_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ESArcanaComboSummary_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ESArcanaComboSummary.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ESArcanaComboSummary.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_ESArcanaComboSummary parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_ESArcanaComboSummary(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int EHANDLE_FIELD_NUMBER = 1;
    private int ehandle_;
    /**
     * optional uint32 ehandle = 1;
     */
    public boolean hasEhandle() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional uint32 ehandle = 1;
     */
    public int getEhandle() {
      return ehandle_;
    }

    public static final int COMBO_COUNT_FIELD_NUMBER = 2;
    private int comboCount_;
    /**
     * optional uint32 combo_count = 2;
     */
    public boolean hasComboCount() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional uint32 combo_count = 2;
     */
    public int getComboCount() {
      return comboCount_;
    }

    public static final int DAMAGE_AMOUNT_FIELD_NUMBER = 3;
    private int damageAmount_;
    /**
     * optional uint32 damage_amount = 3;
     */
    public boolean hasDamageAmount() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional uint32 damage_amount = 3;
     */
    public int getDamageAmount() {
      return damageAmount_;
    }

    private void initFields() {
      ehandle_ = 0;
      comboCount_ = 0;
      damageAmount_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, ehandle_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, comboCount_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeUInt32(3, damageAmount_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, ehandle_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, comboCount_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, damageAmount_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ESArcanaComboSummary parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ESArcanaComboSummary parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ESArcanaComboSummary parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ESArcanaComboSummary parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ESArcanaComboSummary parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ESArcanaComboSummary parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ESArcanaComboSummary parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ESArcanaComboSummary parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ESArcanaComboSummary parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ESArcanaComboSummary parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ESArcanaComboSummary prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_ESArcanaComboSummary}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_ESArcanaComboSummary)
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ESArcanaComboSummaryOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ESArcanaComboSummary_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ESArcanaComboSummary_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ESArcanaComboSummary.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ESArcanaComboSummary.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ESArcanaComboSummary.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        ehandle_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        comboCount_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        damageAmount_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ESArcanaComboSummary_descriptor;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ESArcanaComboSummary getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ESArcanaComboSummary.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ESArcanaComboSummary build() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ESArcanaComboSummary result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ESArcanaComboSummary buildPartial() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ESArcanaComboSummary result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ESArcanaComboSummary(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.ehandle_ = ehandle_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.comboCount_ = comboCount_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.damageAmount_ = damageAmount_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ESArcanaComboSummary) {
          return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ESArcanaComboSummary)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ESArcanaComboSummary other) {
        if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ESArcanaComboSummary.getDefaultInstance()) return this;
        if (other.hasEhandle()) {
          setEhandle(other.getEhandle());
        }
        if (other.hasComboCount()) {
          setComboCount(other.getComboCount());
        }
        if (other.hasDamageAmount()) {
          setDamageAmount(other.getDamageAmount());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ESArcanaComboSummary parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ESArcanaComboSummary) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int ehandle_ ;
      /**
       * optional uint32 ehandle = 1;
       */
      public boolean hasEhandle() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional uint32 ehandle = 1;
       */
      public int getEhandle() {
        return ehandle_;
      }
      /**
       * optional uint32 ehandle = 1;
       */
      public Builder setEhandle(int value) {
        bitField0_ |= 0x00000001;
        ehandle_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 ehandle = 1;
       */
      public Builder clearEhandle() {
        bitField0_ = (bitField0_ & ~0x00000001);
        ehandle_ = 0;
        onChanged();
        return this;
      }

      private int comboCount_ ;
      /**
       * optional uint32 combo_count = 2;
       */
      public boolean hasComboCount() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional uint32 combo_count = 2;
       */
      public int getComboCount() {
        return comboCount_;
      }
      /**
       * optional uint32 combo_count = 2;
       */
      public Builder setComboCount(int value) {
        bitField0_ |= 0x00000002;
        comboCount_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 combo_count = 2;
       */
      public Builder clearComboCount() {
        bitField0_ = (bitField0_ & ~0x00000002);
        comboCount_ = 0;
        onChanged();
        return this;
      }

      private int damageAmount_ ;
      /**
       * optional uint32 damage_amount = 3;
       */
      public boolean hasDamageAmount() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional uint32 damage_amount = 3;
       */
      public int getDamageAmount() {
        return damageAmount_;
      }
      /**
       * optional uint32 damage_amount = 3;
       */
      public Builder setDamageAmount(int value) {
        bitField0_ |= 0x00000004;
        damageAmount_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 damage_amount = 3;
       */
      public Builder clearDamageAmount() {
        bitField0_ = (bitField0_ & ~0x00000004);
        damageAmount_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_ESArcanaComboSummary)
    }

    static {
      defaultInstance = new CDOTAUserMsg_ESArcanaComboSummary(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_ESArcanaComboSummary)
  }

  public interface CDOTAUserMsg_OMArcanaComboOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_OMArcanaCombo)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional uint32 ehandle = 1;
     */
    boolean hasEhandle();
    /**
     * optional uint32 ehandle = 1;
     */
    int getEhandle();

    /**
     * optional uint32 multicast_amount = 2;
     */
    boolean hasMulticastAmount();
    /**
     * optional uint32 multicast_amount = 2;
     */
    int getMulticastAmount();

    /**
     * optional uint32 arcana_level = 3;
     */
    boolean hasArcanaLevel();
    /**
     * optional uint32 arcana_level = 3;
     */
    int getArcanaLevel();

    /**
     * optional uint32 multicast_chance = 4;
     */
    boolean hasMulticastChance();
    /**
     * optional uint32 multicast_chance = 4;
     */
    int getMulticastChance();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_OMArcanaCombo}
   */
  public static final class CDOTAUserMsg_OMArcanaCombo extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_OMArcanaCombo)
      CDOTAUserMsg_OMArcanaComboOrBuilder {
    // Use CDOTAUserMsg_OMArcanaCombo.newBuilder() to construct.
    private CDOTAUserMsg_OMArcanaCombo(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_OMArcanaCombo(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_OMArcanaCombo defaultInstance;
    public static CDOTAUserMsg_OMArcanaCombo getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_OMArcanaCombo getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_OMArcanaCombo(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              ehandle_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              multicastAmount_ = input.readUInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              arcanaLevel_ = input.readUInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              multicastChance_ = input.readUInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_OMArcanaCombo_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_OMArcanaCombo_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OMArcanaCombo.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OMArcanaCombo.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_OMArcanaCombo parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_OMArcanaCombo(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int EHANDLE_FIELD_NUMBER = 1;
    private int ehandle_;
    /**
     * optional uint32 ehandle = 1;
     */
    public boolean hasEhandle() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional uint32 ehandle = 1;
     */
    public int getEhandle() {
      return ehandle_;
    }

    public static final int MULTICAST_AMOUNT_FIELD_NUMBER = 2;
    private int multicastAmount_;
    /**
     * optional uint32 multicast_amount = 2;
     */
    public boolean hasMulticastAmount() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional uint32 multicast_amount = 2;
     */
    public int getMulticastAmount() {
      return multicastAmount_;
    }

    public static final int ARCANA_LEVEL_FIELD_NUMBER = 3;
    private int arcanaLevel_;
    /**
     * optional uint32 arcana_level = 3;
     */
    public boolean hasArcanaLevel() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional uint32 arcana_level = 3;
     */
    public int getArcanaLevel() {
      return arcanaLevel_;
    }

    public static final int MULTICAST_CHANCE_FIELD_NUMBER = 4;
    private int multicastChance_;
    /**
     * optional uint32 multicast_chance = 4;
     */
    public boolean hasMulticastChance() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional uint32 multicast_chance = 4;
     */
    public int getMulticastChance() {
      return multicastChance_;
    }

    private void initFields() {
      ehandle_ = 0;
      multicastAmount_ = 0;
      arcanaLevel_ = 0;
      multicastChance_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, ehandle_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, multicastAmount_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeUInt32(3, arcanaLevel_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeUInt32(4, multicastChance_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, ehandle_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, multicastAmount_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, arcanaLevel_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(4, multicastChance_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OMArcanaCombo parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OMArcanaCombo parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OMArcanaCombo parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OMArcanaCombo parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OMArcanaCombo parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OMArcanaCombo parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OMArcanaCombo parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OMArcanaCombo parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OMArcanaCombo parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OMArcanaCombo parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OMArcanaCombo prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_OMArcanaCombo}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_OMArcanaCombo)
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OMArcanaComboOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_OMArcanaCombo_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_OMArcanaCombo_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OMArcanaCombo.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OMArcanaCombo.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OMArcanaCombo.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        ehandle_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        multicastAmount_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        arcanaLevel_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        multicastChance_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_OMArcanaCombo_descriptor;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OMArcanaCombo getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OMArcanaCombo.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OMArcanaCombo build() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OMArcanaCombo result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OMArcanaCombo buildPartial() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OMArcanaCombo result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OMArcanaCombo(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.ehandle_ = ehandle_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.multicastAmount_ = multicastAmount_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.arcanaLevel_ = arcanaLevel_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.multicastChance_ = multicastChance_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OMArcanaCombo) {
          return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OMArcanaCombo)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OMArcanaCombo other) {
        if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OMArcanaCombo.getDefaultInstance()) return this;
        if (other.hasEhandle()) {
          setEhandle(other.getEhandle());
        }
        if (other.hasMulticastAmount()) {
          setMulticastAmount(other.getMulticastAmount());
        }
        if (other.hasArcanaLevel()) {
          setArcanaLevel(other.getArcanaLevel());
        }
        if (other.hasMulticastChance()) {
          setMulticastChance(other.getMulticastChance());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OMArcanaCombo parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OMArcanaCombo) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int ehandle_ ;
      /**
       * optional uint32 ehandle = 1;
       */
      public boolean hasEhandle() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional uint32 ehandle = 1;
       */
      public int getEhandle() {
        return ehandle_;
      }
      /**
       * optional uint32 ehandle = 1;
       */
      public Builder setEhandle(int value) {
        bitField0_ |= 0x00000001;
        ehandle_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 ehandle = 1;
       */
      public Builder clearEhandle() {
        bitField0_ = (bitField0_ & ~0x00000001);
        ehandle_ = 0;
        onChanged();
        return this;
      }

      private int multicastAmount_ ;
      /**
       * optional uint32 multicast_amount = 2;
       */
      public boolean hasMulticastAmount() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional uint32 multicast_amount = 2;
       */
      public int getMulticastAmount() {
        return multicastAmount_;
      }
      /**
       * optional uint32 multicast_amount = 2;
       */
      public Builder setMulticastAmount(int value) {
        bitField0_ |= 0x00000002;
        multicastAmount_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 multicast_amount = 2;
       */
      public Builder clearMulticastAmount() {
        bitField0_ = (bitField0_ & ~0x00000002);
        multicastAmount_ = 0;
        onChanged();
        return this;
      }

      private int arcanaLevel_ ;
      /**
       * optional uint32 arcana_level = 3;
       */
      public boolean hasArcanaLevel() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional uint32 arcana_level = 3;
       */
      public int getArcanaLevel() {
        return arcanaLevel_;
      }
      /**
       * optional uint32 arcana_level = 3;
       */
      public Builder setArcanaLevel(int value) {
        bitField0_ |= 0x00000004;
        arcanaLevel_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 arcana_level = 3;
       */
      public Builder clearArcanaLevel() {
        bitField0_ = (bitField0_ & ~0x00000004);
        arcanaLevel_ = 0;
        onChanged();
        return this;
      }

      private int multicastChance_ ;
      /**
       * optional uint32 multicast_chance = 4;
       */
      public boolean hasMulticastChance() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional uint32 multicast_chance = 4;
       */
      public int getMulticastChance() {
        return multicastChance_;
      }
      /**
       * optional uint32 multicast_chance = 4;
       */
      public Builder setMulticastChance(int value) {
        bitField0_ |= 0x00000008;
        multicastChance_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 multicast_chance = 4;
       */
      public Builder clearMulticastChance() {
        bitField0_ = (bitField0_ & ~0x00000008);
        multicastChance_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_OMArcanaCombo)
    }

    static {
      defaultInstance = new CDOTAUserMsg_OMArcanaCombo(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_OMArcanaCombo)
  }

  public interface CDOTAUserMsg_HighFiveCompletedOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_HighFiveCompleted)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional uint32 player_id_1 = 1;
     */
    boolean hasPlayerId1();
    /**
     * optional uint32 player_id_1 = 1;
     */
    int getPlayerId1();

    /**
     * optional uint32 player_id_2 = 2;
     */
    boolean hasPlayerId2();
    /**
     * optional uint32 player_id_2 = 2;
     */
    int getPlayerId2();

    /**
     * optional bool special_high_five = 3;
     */
    boolean hasSpecialHighFive();
    /**
     * optional bool special_high_five = 3;
     */
    boolean getSpecialHighFive();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_HighFiveCompleted}
   */
  public static final class CDOTAUserMsg_HighFiveCompleted extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_HighFiveCompleted)
      CDOTAUserMsg_HighFiveCompletedOrBuilder {
    // Use CDOTAUserMsg_HighFiveCompleted.newBuilder() to construct.
    private CDOTAUserMsg_HighFiveCompleted(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_HighFiveCompleted(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_HighFiveCompleted defaultInstance;
    public static CDOTAUserMsg_HighFiveCompleted getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_HighFiveCompleted getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_HighFiveCompleted(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              playerId1_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              playerId2_ = input.readUInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              specialHighFive_ = input.readBool();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_HighFiveCompleted_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_HighFiveCompleted_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HighFiveCompleted.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HighFiveCompleted.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_HighFiveCompleted parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_HighFiveCompleted(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int PLAYER_ID_1_FIELD_NUMBER = 1;
    private int playerId1_;
    /**
     * optional uint32 player_id_1 = 1;
     */
    public boolean hasPlayerId1() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional uint32 player_id_1 = 1;
     */
    public int getPlayerId1() {
      return playerId1_;
    }

    public static final int PLAYER_ID_2_FIELD_NUMBER = 2;
    private int playerId2_;
    /**
     * optional uint32 player_id_2 = 2;
     */
    public boolean hasPlayerId2() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional uint32 player_id_2 = 2;
     */
    public int getPlayerId2() {
      return playerId2_;
    }

    public static final int SPECIAL_HIGH_FIVE_FIELD_NUMBER = 3;
    private boolean specialHighFive_;
    /**
     * optional bool special_high_five = 3;
     */
    public boolean hasSpecialHighFive() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional bool special_high_five = 3;
     */
    public boolean getSpecialHighFive() {
      return specialHighFive_;
    }

    private void initFields() {
      playerId1_ = 0;
      playerId2_ = 0;
      specialHighFive_ = false;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, playerId1_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, playerId2_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBool(3, specialHighFive_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, playerId1_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, playerId2_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(3, specialHighFive_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HighFiveCompleted parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HighFiveCompleted parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HighFiveCompleted parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HighFiveCompleted parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HighFiveCompleted parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HighFiveCompleted parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HighFiveCompleted parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HighFiveCompleted parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HighFiveCompleted parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HighFiveCompleted parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HighFiveCompleted prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_HighFiveCompleted}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_HighFiveCompleted)
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HighFiveCompletedOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_HighFiveCompleted_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_HighFiveCompleted_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HighFiveCompleted.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HighFiveCompleted.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HighFiveCompleted.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        playerId1_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId2_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        specialHighFive_ = false;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_HighFiveCompleted_descriptor;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HighFiveCompleted getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HighFiveCompleted.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HighFiveCompleted build() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HighFiveCompleted result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HighFiveCompleted buildPartial() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HighFiveCompleted result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HighFiveCompleted(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.playerId1_ = playerId1_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.playerId2_ = playerId2_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.specialHighFive_ = specialHighFive_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HighFiveCompleted) {
          return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HighFiveCompleted)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HighFiveCompleted other) {
        if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HighFiveCompleted.getDefaultInstance()) return this;
        if (other.hasPlayerId1()) {
          setPlayerId1(other.getPlayerId1());
        }
        if (other.hasPlayerId2()) {
          setPlayerId2(other.getPlayerId2());
        }
        if (other.hasSpecialHighFive()) {
          setSpecialHighFive(other.getSpecialHighFive());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HighFiveCompleted parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HighFiveCompleted) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int playerId1_ ;
      /**
       * optional uint32 player_id_1 = 1;
       */
      public boolean hasPlayerId1() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional uint32 player_id_1 = 1;
       */
      public int getPlayerId1() {
        return playerId1_;
      }
      /**
       * optional uint32 player_id_1 = 1;
       */
      public Builder setPlayerId1(int value) {
        bitField0_ |= 0x00000001;
        playerId1_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 player_id_1 = 1;
       */
      public Builder clearPlayerId1() {
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId1_ = 0;
        onChanged();
        return this;
      }

      private int playerId2_ ;
      /**
       * optional uint32 player_id_2 = 2;
       */
      public boolean hasPlayerId2() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional uint32 player_id_2 = 2;
       */
      public int getPlayerId2() {
        return playerId2_;
      }
      /**
       * optional uint32 player_id_2 = 2;
       */
      public Builder setPlayerId2(int value) {
        bitField0_ |= 0x00000002;
        playerId2_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 player_id_2 = 2;
       */
      public Builder clearPlayerId2() {
        bitField0_ = (bitField0_ & ~0x00000002);
        playerId2_ = 0;
        onChanged();
        return this;
      }

      private boolean specialHighFive_ ;
      /**
       * optional bool special_high_five = 3;
       */
      public boolean hasSpecialHighFive() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional bool special_high_five = 3;
       */
      public boolean getSpecialHighFive() {
        return specialHighFive_;
      }
      /**
       * optional bool special_high_five = 3;
       */
      public Builder setSpecialHighFive(boolean value) {
        bitField0_ |= 0x00000004;
        specialHighFive_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool special_high_five = 3;
       */
      public Builder clearSpecialHighFive() {
        bitField0_ = (bitField0_ & ~0x00000004);
        specialHighFive_ = false;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_HighFiveCompleted)
    }

    static {
      defaultInstance = new CDOTAUserMsg_HighFiveCompleted(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_HighFiveCompleted)
  }

  public interface CDOTAUserMsg_HighFiveLeftHangingOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_HighFiveLeftHanging)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional uint32 player_id = 1;
     */
    boolean hasPlayerId();
    /**
     * optional uint32 player_id = 1;
     */
    int getPlayerId();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_HighFiveLeftHanging}
   */
  public static final class CDOTAUserMsg_HighFiveLeftHanging extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_HighFiveLeftHanging)
      CDOTAUserMsg_HighFiveLeftHangingOrBuilder {
    // Use CDOTAUserMsg_HighFiveLeftHanging.newBuilder() to construct.
    private CDOTAUserMsg_HighFiveLeftHanging(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_HighFiveLeftHanging(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_HighFiveLeftHanging defaultInstance;
    public static CDOTAUserMsg_HighFiveLeftHanging getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_HighFiveLeftHanging getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_HighFiveLeftHanging(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              playerId_ = input.readUInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_HighFiveLeftHanging_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_HighFiveLeftHanging_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HighFiveLeftHanging.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HighFiveLeftHanging.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_HighFiveLeftHanging parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_HighFiveLeftHanging(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int PLAYER_ID_FIELD_NUMBER = 1;
    private int playerId_;
    /**
     * optional uint32 player_id = 1;
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional uint32 player_id = 1;
     */
    public int getPlayerId() {
      return playerId_;
    }

    private void initFields() {
      playerId_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, playerId_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, playerId_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HighFiveLeftHanging parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HighFiveLeftHanging parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HighFiveLeftHanging parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HighFiveLeftHanging parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HighFiveLeftHanging parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HighFiveLeftHanging parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HighFiveLeftHanging parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HighFiveLeftHanging parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HighFiveLeftHanging parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HighFiveLeftHanging parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HighFiveLeftHanging prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_HighFiveLeftHanging}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_HighFiveLeftHanging)
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HighFiveLeftHangingOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_HighFiveLeftHanging_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_HighFiveLeftHanging_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HighFiveLeftHanging.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HighFiveLeftHanging.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HighFiveLeftHanging.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_HighFiveLeftHanging_descriptor;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HighFiveLeftHanging getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HighFiveLeftHanging.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HighFiveLeftHanging build() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HighFiveLeftHanging result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HighFiveLeftHanging buildPartial() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HighFiveLeftHanging result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HighFiveLeftHanging(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.playerId_ = playerId_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HighFiveLeftHanging) {
          return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HighFiveLeftHanging)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HighFiveLeftHanging other) {
        if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HighFiveLeftHanging.getDefaultInstance()) return this;
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HighFiveLeftHanging parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HighFiveLeftHanging) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int playerId_ ;
      /**
       * optional uint32 player_id = 1;
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional uint32 player_id = 1;
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * optional uint32 player_id = 1;
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000001;
        playerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 player_id = 1;
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_HighFiveLeftHanging)
    }

    static {
      defaultInstance = new CDOTAUserMsg_HighFiveLeftHanging(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_HighFiveLeftHanging)
  }

  public interface CDOTAUserMsg_ShovelUnearthOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_ShovelUnearth)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional uint32 player_id = 1;
     */
    boolean hasPlayerId();
    /**
     * optional uint32 player_id = 1;
     */
    int getPlayerId();

    /**
     * optional bool all_chat = 2;
     */
    boolean hasAllChat();
    /**
     * optional bool all_chat = 2;
     */
    boolean getAllChat();

    /**
     * optional string locstring = 3;
     */
    boolean hasLocstring();
    /**
     * optional string locstring = 3;
     */
    java.lang.String getLocstring();
    /**
     * optional string locstring = 3;
     */
    com.google.protobuf.ByteString
        getLocstringBytes();

    /**
     * optional uint32 quantity = 4;
     */
    boolean hasQuantity();
    /**
     * optional uint32 quantity = 4;
     */
    int getQuantity();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_ShovelUnearth}
   */
  public static final class CDOTAUserMsg_ShovelUnearth extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_ShovelUnearth)
      CDOTAUserMsg_ShovelUnearthOrBuilder {
    // Use CDOTAUserMsg_ShovelUnearth.newBuilder() to construct.
    private CDOTAUserMsg_ShovelUnearth(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_ShovelUnearth(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_ShovelUnearth defaultInstance;
    public static CDOTAUserMsg_ShovelUnearth getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_ShovelUnearth getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_ShovelUnearth(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              playerId_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              allChat_ = input.readBool();
              break;
            }
            case 26: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000004;
              locstring_ = bs;
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              quantity_ = input.readUInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ShovelUnearth_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ShovelUnearth_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ShovelUnearth.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ShovelUnearth.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_ShovelUnearth parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_ShovelUnearth(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int PLAYER_ID_FIELD_NUMBER = 1;
    private int playerId_;
    /**
     * optional uint32 player_id = 1;
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional uint32 player_id = 1;
     */
    public int getPlayerId() {
      return playerId_;
    }

    public static final int ALL_CHAT_FIELD_NUMBER = 2;
    private boolean allChat_;
    /**
     * optional bool all_chat = 2;
     */
    public boolean hasAllChat() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional bool all_chat = 2;
     */
    public boolean getAllChat() {
      return allChat_;
    }

    public static final int LOCSTRING_FIELD_NUMBER = 3;
    private java.lang.Object locstring_;
    /**
     * optional string locstring = 3;
     */
    public boolean hasLocstring() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional string locstring = 3;
     */
    public java.lang.String getLocstring() {
      java.lang.Object ref = locstring_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          locstring_ = s;
        }
        return s;
      }
    }
    /**
     * optional string locstring = 3;
     */
    public com.google.protobuf.ByteString
        getLocstringBytes() {
      java.lang.Object ref = locstring_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        locstring_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int QUANTITY_FIELD_NUMBER = 4;
    private int quantity_;
    /**
     * optional uint32 quantity = 4;
     */
    public boolean hasQuantity() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional uint32 quantity = 4;
     */
    public int getQuantity() {
      return quantity_;
    }

    private void initFields() {
      playerId_ = 0;
      allChat_ = false;
      locstring_ = "";
      quantity_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBool(2, allChat_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBytes(3, getLocstringBytes());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeUInt32(4, quantity_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(2, allChat_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(3, getLocstringBytes());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(4, quantity_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ShovelUnearth parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ShovelUnearth parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ShovelUnearth parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ShovelUnearth parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ShovelUnearth parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ShovelUnearth parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ShovelUnearth parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ShovelUnearth parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ShovelUnearth parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ShovelUnearth parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ShovelUnearth prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_ShovelUnearth}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_ShovelUnearth)
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ShovelUnearthOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ShovelUnearth_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ShovelUnearth_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ShovelUnearth.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ShovelUnearth.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ShovelUnearth.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        allChat_ = false;
        bitField0_ = (bitField0_ & ~0x00000002);
        locstring_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        quantity_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ShovelUnearth_descriptor;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ShovelUnearth getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ShovelUnearth.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ShovelUnearth build() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ShovelUnearth result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ShovelUnearth buildPartial() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ShovelUnearth result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ShovelUnearth(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.playerId_ = playerId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.allChat_ = allChat_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.locstring_ = locstring_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.quantity_ = quantity_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ShovelUnearth) {
          return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ShovelUnearth)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ShovelUnearth other) {
        if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ShovelUnearth.getDefaultInstance()) return this;
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        if (other.hasAllChat()) {
          setAllChat(other.getAllChat());
        }
        if (other.hasLocstring()) {
          bitField0_ |= 0x00000004;
          locstring_ = other.locstring_;
          onChanged();
        }
        if (other.hasQuantity()) {
          setQuantity(other.getQuantity());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ShovelUnearth parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ShovelUnearth) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int playerId_ ;
      /**
       * optional uint32 player_id = 1;
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional uint32 player_id = 1;
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * optional uint32 player_id = 1;
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000001;
        playerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 player_id = 1;
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        onChanged();
        return this;
      }

      private boolean allChat_ ;
      /**
       * optional bool all_chat = 2;
       */
      public boolean hasAllChat() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional bool all_chat = 2;
       */
      public boolean getAllChat() {
        return allChat_;
      }
      /**
       * optional bool all_chat = 2;
       */
      public Builder setAllChat(boolean value) {
        bitField0_ |= 0x00000002;
        allChat_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool all_chat = 2;
       */
      public Builder clearAllChat() {
        bitField0_ = (bitField0_ & ~0x00000002);
        allChat_ = false;
        onChanged();
        return this;
      }

      private java.lang.Object locstring_ = "";
      /**
       * optional string locstring = 3;
       */
      public boolean hasLocstring() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional string locstring = 3;
       */
      public java.lang.String getLocstring() {
        java.lang.Object ref = locstring_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            locstring_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string locstring = 3;
       */
      public com.google.protobuf.ByteString
          getLocstringBytes() {
        java.lang.Object ref = locstring_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          locstring_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string locstring = 3;
       */
      public Builder setLocstring(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        locstring_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string locstring = 3;
       */
      public Builder clearLocstring() {
        bitField0_ = (bitField0_ & ~0x00000004);
        locstring_ = getDefaultInstance().getLocstring();
        onChanged();
        return this;
      }
      /**
       * optional string locstring = 3;
       */
      public Builder setLocstringBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        locstring_ = value;
        onChanged();
        return this;
      }

      private int quantity_ ;
      /**
       * optional uint32 quantity = 4;
       */
      public boolean hasQuantity() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional uint32 quantity = 4;
       */
      public int getQuantity() {
        return quantity_;
      }
      /**
       * optional uint32 quantity = 4;
       */
      public Builder setQuantity(int value) {
        bitField0_ |= 0x00000008;
        quantity_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 quantity = 4;
       */
      public Builder clearQuantity() {
        bitField0_ = (bitField0_ & ~0x00000008);
        quantity_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_ShovelUnearth)
    }

    static {
      defaultInstance = new CDOTAUserMsg_ShovelUnearth(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_ShovelUnearth)
  }

  public interface CDOTAUserMsg_AllStarEventOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_AllStarEvent)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional int32 source_player_id = 1;
     */
    boolean hasSourcePlayerId();
    /**
     * optional int32 source_player_id = 1;
     */
    int getSourcePlayerId();

    /**
     * optional int32 target_player_id = 2;
     */
    boolean hasTargetPlayerId();
    /**
     * optional int32 target_player_id = 2;
     */
    int getTargetPlayerId();

    /**
     * optional uint32 point_amount = 3;
     */
    boolean hasPointAmount();
    /**
     * optional uint32 point_amount = 3;
     */
    int getPointAmount();

    /**
     * optional uint32 event_id = 4;
     */
    boolean hasEventId();
    /**
     * optional uint32 event_id = 4;
     */
    int getEventId();

    /**
     * repeated .CDOTAUserMsg_AllStarEvent.PlayerScore player_scores = 5;
     */
    java.util.List 
        getPlayerScoresList();
    /**
     * repeated .CDOTAUserMsg_AllStarEvent.PlayerScore player_scores = 5;
     */
    skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScore getPlayerScores(int index);
    /**
     * repeated .CDOTAUserMsg_AllStarEvent.PlayerScore player_scores = 5;
     */
    int getPlayerScoresCount();
    /**
     * repeated .CDOTAUserMsg_AllStarEvent.PlayerScore player_scores = 5;
     */
    java.util.List 
        getPlayerScoresOrBuilderList();
    /**
     * repeated .CDOTAUserMsg_AllStarEvent.PlayerScore player_scores = 5;
     */
    skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScoreOrBuilder getPlayerScoresOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_AllStarEvent}
   */
  public static final class CDOTAUserMsg_AllStarEvent extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_AllStarEvent)
      CDOTAUserMsg_AllStarEventOrBuilder {
    // Use CDOTAUserMsg_AllStarEvent.newBuilder() to construct.
    private CDOTAUserMsg_AllStarEvent(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_AllStarEvent(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_AllStarEvent defaultInstance;
    public static CDOTAUserMsg_AllStarEvent getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_AllStarEvent getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_AllStarEvent(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              sourcePlayerId_ = input.readInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              targetPlayerId_ = input.readInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              pointAmount_ = input.readUInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              eventId_ = input.readUInt32();
              break;
            }
            case 42: {
              if (!((mutable_bitField0_ & 0x00000010) == 0x00000010)) {
                playerScores_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000010;
              }
              playerScores_.add(input.readMessage(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScore.PARSER, extensionRegistry));
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000010) == 0x00000010)) {
          playerScores_ = java.util.Collections.unmodifiableList(playerScores_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_AllStarEvent_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_AllStarEvent_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AllStarEvent.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AllStarEvent.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_AllStarEvent parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_AllStarEvent(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    public interface PlayerScoreOrBuilder extends
        // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_AllStarEvent.PlayerScore)
        com.google.protobuf.MessageOrBuilder {

      /**
       * optional int32 player_id = 1;
       */
      boolean hasPlayerId();
      /**
       * optional int32 player_id = 1;
       */
      int getPlayerId();

      /**
       * optional uint32 score_sans_kda = 2;
       */
      boolean hasScoreSansKda();
      /**
       * optional uint32 score_sans_kda = 2;
       */
      int getScoreSansKda();
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_AllStarEvent.PlayerScore}
     */
    public static final class PlayerScore extends
        com.google.protobuf.GeneratedMessage implements
        // @@protoc_insertion_point(message_implements:CDOTAUserMsg_AllStarEvent.PlayerScore)
        PlayerScoreOrBuilder {
      // Use PlayerScore.newBuilder() to construct.
      private PlayerScore(com.google.protobuf.GeneratedMessage.Builder builder) {
        super(builder);
        this.unknownFields = builder.getUnknownFields();
      }
      private PlayerScore(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

      private static final PlayerScore defaultInstance;
      public static PlayerScore getDefaultInstance() {
        return defaultInstance;
      }

      public PlayerScore getDefaultInstanceForType() {
        return defaultInstance;
      }

      private final com.google.protobuf.UnknownFieldSet unknownFields;
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
          getUnknownFields() {
        return this.unknownFields;
      }
      private PlayerScore(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        initFields();
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
              case 8: {
                bitField0_ |= 0x00000001;
                playerId_ = input.readInt32();
                break;
              }
              case 16: {
                bitField0_ |= 0x00000002;
                scoreSansKda_ = input.readUInt32();
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e.getMessage()).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_AllStarEvent_PlayerScore_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_AllStarEvent_PlayerScore_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScore.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScore.Builder.class);
      }

      public static com.google.protobuf.Parser PARSER =
          new com.google.protobuf.AbstractParser() {
        public PlayerScore parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new PlayerScore(input, extensionRegistry);
        }
      };

      @java.lang.Override
      public com.google.protobuf.Parser getParserForType() {
        return PARSER;
      }

      private int bitField0_;
      public static final int PLAYER_ID_FIELD_NUMBER = 1;
      private int playerId_;
      /**
       * optional int32 player_id = 1;
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 player_id = 1;
       */
      public int getPlayerId() {
        return playerId_;
      }

      public static final int SCORE_SANS_KDA_FIELD_NUMBER = 2;
      private int scoreSansKda_;
      /**
       * optional uint32 score_sans_kda = 2;
       */
      public boolean hasScoreSansKda() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional uint32 score_sans_kda = 2;
       */
      public int getScoreSansKda() {
        return scoreSansKda_;
      }

      private void initFields() {
        playerId_ = 0;
        scoreSansKda_ = 0;
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeInt32(1, playerId_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeUInt32(2, scoreSansKda_);
        }
        getUnknownFields().writeTo(output);
      }

      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;

        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(1, playerId_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeUInt32Size(2, scoreSansKda_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.Object writeReplace()
          throws java.io.ObjectStreamException {
        return super.writeReplace();
      }

      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScore parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScore parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScore parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScore parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScore parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScore parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScore parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScore parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScore parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScore parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }

      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScore prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code CDOTAUserMsg_AllStarEvent.PlayerScore}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder implements
          // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_AllStarEvent.PlayerScore)
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScoreOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_AllStarEvent_PlayerScore_descriptor;
        }

        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_AllStarEvent_PlayerScore_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScore.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScore.Builder.class);
        }

        // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScore.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          }
        }
        private static Builder create() {
          return new Builder();
        }

        public Builder clear() {
          super.clear();
          playerId_ = 0;
          bitField0_ = (bitField0_ & ~0x00000001);
          scoreSansKda_ = 0;
          bitField0_ = (bitField0_ & ~0x00000002);
          return this;
        }

        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }

        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_AllStarEvent_PlayerScore_descriptor;
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScore getDefaultInstanceForType() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScore.getDefaultInstance();
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScore build() {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScore result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScore buildPartial() {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScore result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScore(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.playerId_ = playerId_;
          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
            to_bitField0_ |= 0x00000002;
          }
          result.scoreSansKda_ = scoreSansKda_;
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }

        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScore) {
            return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScore)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScore other) {
          if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScore.getDefaultInstance()) return this;
          if (other.hasPlayerId()) {
            setPlayerId(other.getPlayerId());
          }
          if (other.hasScoreSansKda()) {
            setScoreSansKda(other.getScoreSansKda());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }

        public final boolean isInitialized() {
          return true;
        }

        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScore parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScore) e.getUnfinishedMessage();
            throw e;
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        private int playerId_ ;
        /**
         * optional int32 player_id = 1;
         */
        public boolean hasPlayerId() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * optional int32 player_id = 1;
         */
        public int getPlayerId() {
          return playerId_;
        }
        /**
         * optional int32 player_id = 1;
         */
        public Builder setPlayerId(int value) {
          bitField0_ |= 0x00000001;
          playerId_ = value;
          onChanged();
          return this;
        }
        /**
         * optional int32 player_id = 1;
         */
        public Builder clearPlayerId() {
          bitField0_ = (bitField0_ & ~0x00000001);
          playerId_ = 0;
          onChanged();
          return this;
        }

        private int scoreSansKda_ ;
        /**
         * optional uint32 score_sans_kda = 2;
         */
        public boolean hasScoreSansKda() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        /**
         * optional uint32 score_sans_kda = 2;
         */
        public int getScoreSansKda() {
          return scoreSansKda_;
        }
        /**
         * optional uint32 score_sans_kda = 2;
         */
        public Builder setScoreSansKda(int value) {
          bitField0_ |= 0x00000002;
          scoreSansKda_ = value;
          onChanged();
          return this;
        }
        /**
         * optional uint32 score_sans_kda = 2;
         */
        public Builder clearScoreSansKda() {
          bitField0_ = (bitField0_ & ~0x00000002);
          scoreSansKda_ = 0;
          onChanged();
          return this;
        }

        // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_AllStarEvent.PlayerScore)
      }

      static {
        defaultInstance = new PlayerScore(true);
        defaultInstance.initFields();
      }

      // @@protoc_insertion_point(class_scope:CDOTAUserMsg_AllStarEvent.PlayerScore)
    }

    private int bitField0_;
    public static final int SOURCE_PLAYER_ID_FIELD_NUMBER = 1;
    private int sourcePlayerId_;
    /**
     * optional int32 source_player_id = 1;
     */
    public boolean hasSourcePlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 source_player_id = 1;
     */
    public int getSourcePlayerId() {
      return sourcePlayerId_;
    }

    public static final int TARGET_PLAYER_ID_FIELD_NUMBER = 2;
    private int targetPlayerId_;
    /**
     * optional int32 target_player_id = 2;
     */
    public boolean hasTargetPlayerId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional int32 target_player_id = 2;
     */
    public int getTargetPlayerId() {
      return targetPlayerId_;
    }

    public static final int POINT_AMOUNT_FIELD_NUMBER = 3;
    private int pointAmount_;
    /**
     * optional uint32 point_amount = 3;
     */
    public boolean hasPointAmount() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional uint32 point_amount = 3;
     */
    public int getPointAmount() {
      return pointAmount_;
    }

    public static final int EVENT_ID_FIELD_NUMBER = 4;
    private int eventId_;
    /**
     * optional uint32 event_id = 4;
     */
    public boolean hasEventId() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional uint32 event_id = 4;
     */
    public int getEventId() {
      return eventId_;
    }

    public static final int PLAYER_SCORES_FIELD_NUMBER = 5;
    private java.util.List playerScores_;
    /**
     * repeated .CDOTAUserMsg_AllStarEvent.PlayerScore player_scores = 5;
     */
    public java.util.List getPlayerScoresList() {
      return playerScores_;
    }
    /**
     * repeated .CDOTAUserMsg_AllStarEvent.PlayerScore player_scores = 5;
     */
    public java.util.List 
        getPlayerScoresOrBuilderList() {
      return playerScores_;
    }
    /**
     * repeated .CDOTAUserMsg_AllStarEvent.PlayerScore player_scores = 5;
     */
    public int getPlayerScoresCount() {
      return playerScores_.size();
    }
    /**
     * repeated .CDOTAUserMsg_AllStarEvent.PlayerScore player_scores = 5;
     */
    public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScore getPlayerScores(int index) {
      return playerScores_.get(index);
    }
    /**
     * repeated .CDOTAUserMsg_AllStarEvent.PlayerScore player_scores = 5;
     */
    public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScoreOrBuilder getPlayerScoresOrBuilder(
        int index) {
      return playerScores_.get(index);
    }

    private void initFields() {
      sourcePlayerId_ = 0;
      targetPlayerId_ = 0;
      pointAmount_ = 0;
      eventId_ = 0;
      playerScores_ = java.util.Collections.emptyList();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, sourcePlayerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, targetPlayerId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeUInt32(3, pointAmount_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeUInt32(4, eventId_);
      }
      for (int i = 0; i < playerScores_.size(); i++) {
        output.writeMessage(5, playerScores_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, sourcePlayerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, targetPlayerId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, pointAmount_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(4, eventId_);
      }
      for (int i = 0; i < playerScores_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(5, playerScores_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AllStarEvent parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AllStarEvent parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AllStarEvent parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AllStarEvent parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AllStarEvent parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AllStarEvent parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AllStarEvent parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AllStarEvent parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AllStarEvent parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AllStarEvent parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AllStarEvent prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_AllStarEvent}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_AllStarEvent)
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AllStarEventOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_AllStarEvent_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_AllStarEvent_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AllStarEvent.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AllStarEvent.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AllStarEvent.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getPlayerScoresFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        sourcePlayerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        targetPlayerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        pointAmount_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        eventId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        if (playerScoresBuilder_ == null) {
          playerScores_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000010);
        } else {
          playerScoresBuilder_.clear();
        }
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_AllStarEvent_descriptor;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AllStarEvent getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AllStarEvent.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AllStarEvent build() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AllStarEvent result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AllStarEvent buildPartial() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AllStarEvent result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AllStarEvent(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.sourcePlayerId_ = sourcePlayerId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.targetPlayerId_ = targetPlayerId_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.pointAmount_ = pointAmount_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.eventId_ = eventId_;
        if (playerScoresBuilder_ == null) {
          if (((bitField0_ & 0x00000010) == 0x00000010)) {
            playerScores_ = java.util.Collections.unmodifiableList(playerScores_);
            bitField0_ = (bitField0_ & ~0x00000010);
          }
          result.playerScores_ = playerScores_;
        } else {
          result.playerScores_ = playerScoresBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AllStarEvent) {
          return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AllStarEvent)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AllStarEvent other) {
        if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AllStarEvent.getDefaultInstance()) return this;
        if (other.hasSourcePlayerId()) {
          setSourcePlayerId(other.getSourcePlayerId());
        }
        if (other.hasTargetPlayerId()) {
          setTargetPlayerId(other.getTargetPlayerId());
        }
        if (other.hasPointAmount()) {
          setPointAmount(other.getPointAmount());
        }
        if (other.hasEventId()) {
          setEventId(other.getEventId());
        }
        if (playerScoresBuilder_ == null) {
          if (!other.playerScores_.isEmpty()) {
            if (playerScores_.isEmpty()) {
              playerScores_ = other.playerScores_;
              bitField0_ = (bitField0_ & ~0x00000010);
            } else {
              ensurePlayerScoresIsMutable();
              playerScores_.addAll(other.playerScores_);
            }
            onChanged();
          }
        } else {
          if (!other.playerScores_.isEmpty()) {
            if (playerScoresBuilder_.isEmpty()) {
              playerScoresBuilder_.dispose();
              playerScoresBuilder_ = null;
              playerScores_ = other.playerScores_;
              bitField0_ = (bitField0_ & ~0x00000010);
              playerScoresBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getPlayerScoresFieldBuilder() : null;
            } else {
              playerScoresBuilder_.addAllMessages(other.playerScores_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AllStarEvent parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AllStarEvent) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int sourcePlayerId_ ;
      /**
       * optional int32 source_player_id = 1;
       */
      public boolean hasSourcePlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 source_player_id = 1;
       */
      public int getSourcePlayerId() {
        return sourcePlayerId_;
      }
      /**
       * optional int32 source_player_id = 1;
       */
      public Builder setSourcePlayerId(int value) {
        bitField0_ |= 0x00000001;
        sourcePlayerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 source_player_id = 1;
       */
      public Builder clearSourcePlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        sourcePlayerId_ = 0;
        onChanged();
        return this;
      }

      private int targetPlayerId_ ;
      /**
       * optional int32 target_player_id = 2;
       */
      public boolean hasTargetPlayerId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional int32 target_player_id = 2;
       */
      public int getTargetPlayerId() {
        return targetPlayerId_;
      }
      /**
       * optional int32 target_player_id = 2;
       */
      public Builder setTargetPlayerId(int value) {
        bitField0_ |= 0x00000002;
        targetPlayerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 target_player_id = 2;
       */
      public Builder clearTargetPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        targetPlayerId_ = 0;
        onChanged();
        return this;
      }

      private int pointAmount_ ;
      /**
       * optional uint32 point_amount = 3;
       */
      public boolean hasPointAmount() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional uint32 point_amount = 3;
       */
      public int getPointAmount() {
        return pointAmount_;
      }
      /**
       * optional uint32 point_amount = 3;
       */
      public Builder setPointAmount(int value) {
        bitField0_ |= 0x00000004;
        pointAmount_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 point_amount = 3;
       */
      public Builder clearPointAmount() {
        bitField0_ = (bitField0_ & ~0x00000004);
        pointAmount_ = 0;
        onChanged();
        return this;
      }

      private int eventId_ ;
      /**
       * optional uint32 event_id = 4;
       */
      public boolean hasEventId() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional uint32 event_id = 4;
       */
      public int getEventId() {
        return eventId_;
      }
      /**
       * optional uint32 event_id = 4;
       */
      public Builder setEventId(int value) {
        bitField0_ |= 0x00000008;
        eventId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 event_id = 4;
       */
      public Builder clearEventId() {
        bitField0_ = (bitField0_ & ~0x00000008);
        eventId_ = 0;
        onChanged();
        return this;
      }

      private java.util.List playerScores_ =
        java.util.Collections.emptyList();
      private void ensurePlayerScoresIsMutable() {
        if (!((bitField0_ & 0x00000010) == 0x00000010)) {
          playerScores_ = new java.util.ArrayList(playerScores_);
          bitField0_ |= 0x00000010;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScore, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScore.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScoreOrBuilder> playerScoresBuilder_;

      /**
       * repeated .CDOTAUserMsg_AllStarEvent.PlayerScore player_scores = 5;
       */
      public java.util.List getPlayerScoresList() {
        if (playerScoresBuilder_ == null) {
          return java.util.Collections.unmodifiableList(playerScores_);
        } else {
          return playerScoresBuilder_.getMessageList();
        }
      }
      /**
       * repeated .CDOTAUserMsg_AllStarEvent.PlayerScore player_scores = 5;
       */
      public int getPlayerScoresCount() {
        if (playerScoresBuilder_ == null) {
          return playerScores_.size();
        } else {
          return playerScoresBuilder_.getCount();
        }
      }
      /**
       * repeated .CDOTAUserMsg_AllStarEvent.PlayerScore player_scores = 5;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScore getPlayerScores(int index) {
        if (playerScoresBuilder_ == null) {
          return playerScores_.get(index);
        } else {
          return playerScoresBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .CDOTAUserMsg_AllStarEvent.PlayerScore player_scores = 5;
       */
      public Builder setPlayerScores(
          int index, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScore value) {
        if (playerScoresBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePlayerScoresIsMutable();
          playerScores_.set(index, value);
          onChanged();
        } else {
          playerScoresBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_AllStarEvent.PlayerScore player_scores = 5;
       */
      public Builder setPlayerScores(
          int index, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScore.Builder builderForValue) {
        if (playerScoresBuilder_ == null) {
          ensurePlayerScoresIsMutable();
          playerScores_.set(index, builderForValue.build());
          onChanged();
        } else {
          playerScoresBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_AllStarEvent.PlayerScore player_scores = 5;
       */
      public Builder addPlayerScores(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScore value) {
        if (playerScoresBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePlayerScoresIsMutable();
          playerScores_.add(value);
          onChanged();
        } else {
          playerScoresBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_AllStarEvent.PlayerScore player_scores = 5;
       */
      public Builder addPlayerScores(
          int index, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScore value) {
        if (playerScoresBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePlayerScoresIsMutable();
          playerScores_.add(index, value);
          onChanged();
        } else {
          playerScoresBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_AllStarEvent.PlayerScore player_scores = 5;
       */
      public Builder addPlayerScores(
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScore.Builder builderForValue) {
        if (playerScoresBuilder_ == null) {
          ensurePlayerScoresIsMutable();
          playerScores_.add(builderForValue.build());
          onChanged();
        } else {
          playerScoresBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_AllStarEvent.PlayerScore player_scores = 5;
       */
      public Builder addPlayerScores(
          int index, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScore.Builder builderForValue) {
        if (playerScoresBuilder_ == null) {
          ensurePlayerScoresIsMutable();
          playerScores_.add(index, builderForValue.build());
          onChanged();
        } else {
          playerScoresBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_AllStarEvent.PlayerScore player_scores = 5;
       */
      public Builder addAllPlayerScores(
          java.lang.Iterable values) {
        if (playerScoresBuilder_ == null) {
          ensurePlayerScoresIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, playerScores_);
          onChanged();
        } else {
          playerScoresBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_AllStarEvent.PlayerScore player_scores = 5;
       */
      public Builder clearPlayerScores() {
        if (playerScoresBuilder_ == null) {
          playerScores_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000010);
          onChanged();
        } else {
          playerScoresBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_AllStarEvent.PlayerScore player_scores = 5;
       */
      public Builder removePlayerScores(int index) {
        if (playerScoresBuilder_ == null) {
          ensurePlayerScoresIsMutable();
          playerScores_.remove(index);
          onChanged();
        } else {
          playerScoresBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_AllStarEvent.PlayerScore player_scores = 5;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScore.Builder getPlayerScoresBuilder(
          int index) {
        return getPlayerScoresFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .CDOTAUserMsg_AllStarEvent.PlayerScore player_scores = 5;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScoreOrBuilder getPlayerScoresOrBuilder(
          int index) {
        if (playerScoresBuilder_ == null) {
          return playerScores_.get(index);  } else {
          return playerScoresBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .CDOTAUserMsg_AllStarEvent.PlayerScore player_scores = 5;
       */
      public java.util.List 
           getPlayerScoresOrBuilderList() {
        if (playerScoresBuilder_ != null) {
          return playerScoresBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(playerScores_);
        }
      }
      /**
       * repeated .CDOTAUserMsg_AllStarEvent.PlayerScore player_scores = 5;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScore.Builder addPlayerScoresBuilder() {
        return getPlayerScoresFieldBuilder().addBuilder(
            skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScore.getDefaultInstance());
      }
      /**
       * repeated .CDOTAUserMsg_AllStarEvent.PlayerScore player_scores = 5;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScore.Builder addPlayerScoresBuilder(
          int index) {
        return getPlayerScoresFieldBuilder().addBuilder(
            index, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScore.getDefaultInstance());
      }
      /**
       * repeated .CDOTAUserMsg_AllStarEvent.PlayerScore player_scores = 5;
       */
      public java.util.List 
           getPlayerScoresBuilderList() {
        return getPlayerScoresFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScore, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScore.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScoreOrBuilder> 
          getPlayerScoresFieldBuilder() {
        if (playerScoresBuilder_ == null) {
          playerScoresBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScore, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScore.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScoreOrBuilder>(
                  playerScores_,
                  ((bitField0_ & 0x00000010) == 0x00000010),
                  getParentForChildren(),
                  isClean());
          playerScores_ = null;
        }
        return playerScoresBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_AllStarEvent)
    }

    static {
      defaultInstance = new CDOTAUserMsg_AllStarEvent(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_AllStarEvent)
  }

  public interface CDOTAUserMsg_QueuedOrderRemovedOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_QueuedOrderRemoved)
      com.google.protobuf.MessageOrBuilder {

    /**
     * repeated uint32 unit_order_sequence = 1;
     */
    java.util.List getUnitOrderSequenceList();
    /**
     * repeated uint32 unit_order_sequence = 1;
     */
    int getUnitOrderSequenceCount();
    /**
     * repeated uint32 unit_order_sequence = 1;
     */
    int getUnitOrderSequence(int index);
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_QueuedOrderRemoved}
   */
  public static final class CDOTAUserMsg_QueuedOrderRemoved extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_QueuedOrderRemoved)
      CDOTAUserMsg_QueuedOrderRemovedOrBuilder {
    // Use CDOTAUserMsg_QueuedOrderRemoved.newBuilder() to construct.
    private CDOTAUserMsg_QueuedOrderRemoved(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_QueuedOrderRemoved(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_QueuedOrderRemoved defaultInstance;
    public static CDOTAUserMsg_QueuedOrderRemoved getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_QueuedOrderRemoved getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_QueuedOrderRemoved(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                unitOrderSequence_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000001;
              }
              unitOrderSequence_.add(input.readUInt32());
              break;
            }
            case 10: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001) && input.getBytesUntilLimit() > 0) {
                unitOrderSequence_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000001;
              }
              while (input.getBytesUntilLimit() > 0) {
                unitOrderSequence_.add(input.readUInt32());
              }
              input.popLimit(limit);
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
          unitOrderSequence_ = java.util.Collections.unmodifiableList(unitOrderSequence_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_QueuedOrderRemoved_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_QueuedOrderRemoved_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_QueuedOrderRemoved.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_QueuedOrderRemoved.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_QueuedOrderRemoved parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_QueuedOrderRemoved(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    public static final int UNIT_ORDER_SEQUENCE_FIELD_NUMBER = 1;
    private java.util.List unitOrderSequence_;
    /**
     * repeated uint32 unit_order_sequence = 1;
     */
    public java.util.List
        getUnitOrderSequenceList() {
      return unitOrderSequence_;
    }
    /**
     * repeated uint32 unit_order_sequence = 1;
     */
    public int getUnitOrderSequenceCount() {
      return unitOrderSequence_.size();
    }
    /**
     * repeated uint32 unit_order_sequence = 1;
     */
    public int getUnitOrderSequence(int index) {
      return unitOrderSequence_.get(index);
    }

    private void initFields() {
      unitOrderSequence_ = java.util.Collections.emptyList();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      for (int i = 0; i < unitOrderSequence_.size(); i++) {
        output.writeUInt32(1, unitOrderSequence_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      {
        int dataSize = 0;
        for (int i = 0; i < unitOrderSequence_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeUInt32SizeNoTag(unitOrderSequence_.get(i));
        }
        size += dataSize;
        size += 1 * getUnitOrderSequenceList().size();
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_QueuedOrderRemoved parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_QueuedOrderRemoved parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_QueuedOrderRemoved parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_QueuedOrderRemoved parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_QueuedOrderRemoved parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_QueuedOrderRemoved parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_QueuedOrderRemoved parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_QueuedOrderRemoved parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_QueuedOrderRemoved parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_QueuedOrderRemoved parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_QueuedOrderRemoved prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_QueuedOrderRemoved}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_QueuedOrderRemoved)
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_QueuedOrderRemovedOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_QueuedOrderRemoved_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_QueuedOrderRemoved_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_QueuedOrderRemoved.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_QueuedOrderRemoved.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_QueuedOrderRemoved.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        unitOrderSequence_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_QueuedOrderRemoved_descriptor;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_QueuedOrderRemoved getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_QueuedOrderRemoved.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_QueuedOrderRemoved build() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_QueuedOrderRemoved result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_QueuedOrderRemoved buildPartial() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_QueuedOrderRemoved result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_QueuedOrderRemoved(this);
        int from_bitField0_ = bitField0_;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          unitOrderSequence_ = java.util.Collections.unmodifiableList(unitOrderSequence_);
          bitField0_ = (bitField0_ & ~0x00000001);
        }
        result.unitOrderSequence_ = unitOrderSequence_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_QueuedOrderRemoved) {
          return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_QueuedOrderRemoved)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_QueuedOrderRemoved other) {
        if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_QueuedOrderRemoved.getDefaultInstance()) return this;
        if (!other.unitOrderSequence_.isEmpty()) {
          if (unitOrderSequence_.isEmpty()) {
            unitOrderSequence_ = other.unitOrderSequence_;
            bitField0_ = (bitField0_ & ~0x00000001);
          } else {
            ensureUnitOrderSequenceIsMutable();
            unitOrderSequence_.addAll(other.unitOrderSequence_);
          }
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_QueuedOrderRemoved parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_QueuedOrderRemoved) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.util.List unitOrderSequence_ = java.util.Collections.emptyList();
      private void ensureUnitOrderSequenceIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          unitOrderSequence_ = new java.util.ArrayList(unitOrderSequence_);
          bitField0_ |= 0x00000001;
         }
      }
      /**
       * repeated uint32 unit_order_sequence = 1;
       */
      public java.util.List
          getUnitOrderSequenceList() {
        return java.util.Collections.unmodifiableList(unitOrderSequence_);
      }
      /**
       * repeated uint32 unit_order_sequence = 1;
       */
      public int getUnitOrderSequenceCount() {
        return unitOrderSequence_.size();
      }
      /**
       * repeated uint32 unit_order_sequence = 1;
       */
      public int getUnitOrderSequence(int index) {
        return unitOrderSequence_.get(index);
      }
      /**
       * repeated uint32 unit_order_sequence = 1;
       */
      public Builder setUnitOrderSequence(
          int index, int value) {
        ensureUnitOrderSequenceIsMutable();
        unitOrderSequence_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * repeated uint32 unit_order_sequence = 1;
       */
      public Builder addUnitOrderSequence(int value) {
        ensureUnitOrderSequenceIsMutable();
        unitOrderSequence_.add(value);
        onChanged();
        return this;
      }
      /**
       * repeated uint32 unit_order_sequence = 1;
       */
      public Builder addAllUnitOrderSequence(
          java.lang.Iterable values) {
        ensureUnitOrderSequenceIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, unitOrderSequence_);
        onChanged();
        return this;
      }
      /**
       * repeated uint32 unit_order_sequence = 1;
       */
      public Builder clearUnitOrderSequence() {
        unitOrderSequence_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_QueuedOrderRemoved)
    }

    static {
      defaultInstance = new CDOTAUserMsg_QueuedOrderRemoved(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_QueuedOrderRemoved)
  }

  public interface CDOTAUserMsg_DebugChallengeOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_DebugChallenge)
      com.google.protobuf.MessageOrBuilder {

    /**
     * required uint32 challenge_type = 1;
     */
    boolean hasChallengeType();
    /**
     * required uint32 challenge_type = 1;
     */
    int getChallengeType();

    /**
     * required uint32 challenge_query_id = 2;
     */
    boolean hasChallengeQueryId();
    /**
     * required uint32 challenge_query_id = 2;
     */
    int getChallengeQueryId();

    /**
     * required uint32 event_id = 3;
     */
    boolean hasEventId();
    /**
     * required uint32 event_id = 3;
     */
    int getEventId();

    /**
     * optional uint32 instance_id = 4;
     */
    boolean hasInstanceId();
    /**
     * optional uint32 instance_id = 4;
     */
    int getInstanceId();

    /**
     * optional uint32 challenge_var_0 = 5;
     */
    boolean hasChallengeVar0();
    /**
     * optional uint32 challenge_var_0 = 5;
     */
    int getChallengeVar0();

    /**
     * optional uint32 challenge_var_1 = 6;
     */
    boolean hasChallengeVar1();
    /**
     * optional uint32 challenge_var_1 = 6;
     */
    int getChallengeVar1();

    /**
     * optional uint32 challenge_max_rank = 7;
     */
    boolean hasChallengeMaxRank();
    /**
     * optional uint32 challenge_max_rank = 7;
     */
    int getChallengeMaxRank();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_DebugChallenge}
   */
  public static final class CDOTAUserMsg_DebugChallenge extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_DebugChallenge)
      CDOTAUserMsg_DebugChallengeOrBuilder {
    // Use CDOTAUserMsg_DebugChallenge.newBuilder() to construct.
    private CDOTAUserMsg_DebugChallenge(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_DebugChallenge(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_DebugChallenge defaultInstance;
    public static CDOTAUserMsg_DebugChallenge getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_DebugChallenge getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_DebugChallenge(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              challengeType_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              challengeQueryId_ = input.readUInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              eventId_ = input.readUInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              instanceId_ = input.readUInt32();
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              challengeVar0_ = input.readUInt32();
              break;
            }
            case 48: {
              bitField0_ |= 0x00000020;
              challengeVar1_ = input.readUInt32();
              break;
            }
            case 56: {
              bitField0_ |= 0x00000040;
              challengeMaxRank_ = input.readUInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_DebugChallenge_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_DebugChallenge_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DebugChallenge.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DebugChallenge.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_DebugChallenge parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_DebugChallenge(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int CHALLENGE_TYPE_FIELD_NUMBER = 1;
    private int challengeType_;
    /**
     * required uint32 challenge_type = 1;
     */
    public boolean hasChallengeType() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * required uint32 challenge_type = 1;
     */
    public int getChallengeType() {
      return challengeType_;
    }

    public static final int CHALLENGE_QUERY_ID_FIELD_NUMBER = 2;
    private int challengeQueryId_;
    /**
     * required uint32 challenge_query_id = 2;
     */
    public boolean hasChallengeQueryId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * required uint32 challenge_query_id = 2;
     */
    public int getChallengeQueryId() {
      return challengeQueryId_;
    }

    public static final int EVENT_ID_FIELD_NUMBER = 3;
    private int eventId_;
    /**
     * required uint32 event_id = 3;
     */
    public boolean hasEventId() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * required uint32 event_id = 3;
     */
    public int getEventId() {
      return eventId_;
    }

    public static final int INSTANCE_ID_FIELD_NUMBER = 4;
    private int instanceId_;
    /**
     * optional uint32 instance_id = 4;
     */
    public boolean hasInstanceId() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional uint32 instance_id = 4;
     */
    public int getInstanceId() {
      return instanceId_;
    }

    public static final int CHALLENGE_VAR_0_FIELD_NUMBER = 5;
    private int challengeVar0_;
    /**
     * optional uint32 challenge_var_0 = 5;
     */
    public boolean hasChallengeVar0() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * optional uint32 challenge_var_0 = 5;
     */
    public int getChallengeVar0() {
      return challengeVar0_;
    }

    public static final int CHALLENGE_VAR_1_FIELD_NUMBER = 6;
    private int challengeVar1_;
    /**
     * optional uint32 challenge_var_1 = 6;
     */
    public boolean hasChallengeVar1() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     * optional uint32 challenge_var_1 = 6;
     */
    public int getChallengeVar1() {
      return challengeVar1_;
    }

    public static final int CHALLENGE_MAX_RANK_FIELD_NUMBER = 7;
    private int challengeMaxRank_;
    /**
     * optional uint32 challenge_max_rank = 7;
     */
    public boolean hasChallengeMaxRank() {
      return ((bitField0_ & 0x00000040) == 0x00000040);
    }
    /**
     * optional uint32 challenge_max_rank = 7;
     */
    public int getChallengeMaxRank() {
      return challengeMaxRank_;
    }

    private void initFields() {
      challengeType_ = 0;
      challengeQueryId_ = 0;
      eventId_ = 0;
      instanceId_ = 0;
      challengeVar0_ = 0;
      challengeVar1_ = 0;
      challengeMaxRank_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasChallengeType()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasChallengeQueryId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasEventId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, challengeType_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, challengeQueryId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeUInt32(3, eventId_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeUInt32(4, instanceId_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeUInt32(5, challengeVar0_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeUInt32(6, challengeVar1_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        output.writeUInt32(7, challengeMaxRank_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, challengeType_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, challengeQueryId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, eventId_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(4, instanceId_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(5, challengeVar0_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(6, challengeVar1_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(7, challengeMaxRank_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DebugChallenge parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DebugChallenge parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DebugChallenge parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DebugChallenge parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DebugChallenge parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DebugChallenge parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DebugChallenge parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DebugChallenge parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DebugChallenge parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DebugChallenge parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DebugChallenge prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_DebugChallenge}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_DebugChallenge)
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DebugChallengeOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_DebugChallenge_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_DebugChallenge_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DebugChallenge.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DebugChallenge.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DebugChallenge.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        challengeType_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        challengeQueryId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        eventId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        instanceId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        challengeVar0_ = 0;
        bitField0_ = (bitField0_ & ~0x00000010);
        challengeVar1_ = 0;
        bitField0_ = (bitField0_ & ~0x00000020);
        challengeMaxRank_ = 0;
        bitField0_ = (bitField0_ & ~0x00000040);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_DebugChallenge_descriptor;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DebugChallenge getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DebugChallenge.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DebugChallenge build() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DebugChallenge result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DebugChallenge buildPartial() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DebugChallenge result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DebugChallenge(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.challengeType_ = challengeType_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.challengeQueryId_ = challengeQueryId_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.eventId_ = eventId_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.instanceId_ = instanceId_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.challengeVar0_ = challengeVar0_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        result.challengeVar1_ = challengeVar1_;
        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
          to_bitField0_ |= 0x00000040;
        }
        result.challengeMaxRank_ = challengeMaxRank_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DebugChallenge) {
          return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DebugChallenge)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DebugChallenge other) {
        if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DebugChallenge.getDefaultInstance()) return this;
        if (other.hasChallengeType()) {
          setChallengeType(other.getChallengeType());
        }
        if (other.hasChallengeQueryId()) {
          setChallengeQueryId(other.getChallengeQueryId());
        }
        if (other.hasEventId()) {
          setEventId(other.getEventId());
        }
        if (other.hasInstanceId()) {
          setInstanceId(other.getInstanceId());
        }
        if (other.hasChallengeVar0()) {
          setChallengeVar0(other.getChallengeVar0());
        }
        if (other.hasChallengeVar1()) {
          setChallengeVar1(other.getChallengeVar1());
        }
        if (other.hasChallengeMaxRank()) {
          setChallengeMaxRank(other.getChallengeMaxRank());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasChallengeType()) {
          
          return false;
        }
        if (!hasChallengeQueryId()) {
          
          return false;
        }
        if (!hasEventId()) {
          
          return false;
        }
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DebugChallenge parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_DebugChallenge) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int challengeType_ ;
      /**
       * required uint32 challenge_type = 1;
       */
      public boolean hasChallengeType() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * required uint32 challenge_type = 1;
       */
      public int getChallengeType() {
        return challengeType_;
      }
      /**
       * required uint32 challenge_type = 1;
       */
      public Builder setChallengeType(int value) {
        bitField0_ |= 0x00000001;
        challengeType_ = value;
        onChanged();
        return this;
      }
      /**
       * required uint32 challenge_type = 1;
       */
      public Builder clearChallengeType() {
        bitField0_ = (bitField0_ & ~0x00000001);
        challengeType_ = 0;
        onChanged();
        return this;
      }

      private int challengeQueryId_ ;
      /**
       * required uint32 challenge_query_id = 2;
       */
      public boolean hasChallengeQueryId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * required uint32 challenge_query_id = 2;
       */
      public int getChallengeQueryId() {
        return challengeQueryId_;
      }
      /**
       * required uint32 challenge_query_id = 2;
       */
      public Builder setChallengeQueryId(int value) {
        bitField0_ |= 0x00000002;
        challengeQueryId_ = value;
        onChanged();
        return this;
      }
      /**
       * required uint32 challenge_query_id = 2;
       */
      public Builder clearChallengeQueryId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        challengeQueryId_ = 0;
        onChanged();
        return this;
      }

      private int eventId_ ;
      /**
       * required uint32 event_id = 3;
       */
      public boolean hasEventId() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * required uint32 event_id = 3;
       */
      public int getEventId() {
        return eventId_;
      }
      /**
       * required uint32 event_id = 3;
       */
      public Builder setEventId(int value) {
        bitField0_ |= 0x00000004;
        eventId_ = value;
        onChanged();
        return this;
      }
      /**
       * required uint32 event_id = 3;
       */
      public Builder clearEventId() {
        bitField0_ = (bitField0_ & ~0x00000004);
        eventId_ = 0;
        onChanged();
        return this;
      }

      private int instanceId_ ;
      /**
       * optional uint32 instance_id = 4;
       */
      public boolean hasInstanceId() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional uint32 instance_id = 4;
       */
      public int getInstanceId() {
        return instanceId_;
      }
      /**
       * optional uint32 instance_id = 4;
       */
      public Builder setInstanceId(int value) {
        bitField0_ |= 0x00000008;
        instanceId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 instance_id = 4;
       */
      public Builder clearInstanceId() {
        bitField0_ = (bitField0_ & ~0x00000008);
        instanceId_ = 0;
        onChanged();
        return this;
      }

      private int challengeVar0_ ;
      /**
       * optional uint32 challenge_var_0 = 5;
       */
      public boolean hasChallengeVar0() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * optional uint32 challenge_var_0 = 5;
       */
      public int getChallengeVar0() {
        return challengeVar0_;
      }
      /**
       * optional uint32 challenge_var_0 = 5;
       */
      public Builder setChallengeVar0(int value) {
        bitField0_ |= 0x00000010;
        challengeVar0_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 challenge_var_0 = 5;
       */
      public Builder clearChallengeVar0() {
        bitField0_ = (bitField0_ & ~0x00000010);
        challengeVar0_ = 0;
        onChanged();
        return this;
      }

      private int challengeVar1_ ;
      /**
       * optional uint32 challenge_var_1 = 6;
       */
      public boolean hasChallengeVar1() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * optional uint32 challenge_var_1 = 6;
       */
      public int getChallengeVar1() {
        return challengeVar1_;
      }
      /**
       * optional uint32 challenge_var_1 = 6;
       */
      public Builder setChallengeVar1(int value) {
        bitField0_ |= 0x00000020;
        challengeVar1_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 challenge_var_1 = 6;
       */
      public Builder clearChallengeVar1() {
        bitField0_ = (bitField0_ & ~0x00000020);
        challengeVar1_ = 0;
        onChanged();
        return this;
      }

      private int challengeMaxRank_ ;
      /**
       * optional uint32 challenge_max_rank = 7;
       */
      public boolean hasChallengeMaxRank() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      /**
       * optional uint32 challenge_max_rank = 7;
       */
      public int getChallengeMaxRank() {
        return challengeMaxRank_;
      }
      /**
       * optional uint32 challenge_max_rank = 7;
       */
      public Builder setChallengeMaxRank(int value) {
        bitField0_ |= 0x00000040;
        challengeMaxRank_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 challenge_max_rank = 7;
       */
      public Builder clearChallengeMaxRank() {
        bitField0_ = (bitField0_ & ~0x00000040);
        challengeMaxRank_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_DebugChallenge)
    }

    static {
      defaultInstance = new CDOTAUserMsg_DebugChallenge(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_DebugChallenge)
  }

  public interface CDOTAUserMsg_FoundNeutralItemOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_FoundNeutralItem)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional uint32 player_id = 1;
     */
    boolean hasPlayerId();
    /**
     * optional uint32 player_id = 1;
     */
    int getPlayerId();

    /**
     * optional uint32 item_ability_id = 2;
     */
    boolean hasItemAbilityId();
    /**
     * optional uint32 item_ability_id = 2;
     */
    int getItemAbilityId();

    /**
     * optional uint32 item_tier = 3;
     */
    boolean hasItemTier();
    /**
     * optional uint32 item_tier = 3;
     */
    int getItemTier();

    /**
     * optional uint32 tier_item_count = 4;
     */
    boolean hasTierItemCount();
    /**
     * optional uint32 tier_item_count = 4;
     */
    int getTierItemCount();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_FoundNeutralItem}
   */
  public static final class CDOTAUserMsg_FoundNeutralItem extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_FoundNeutralItem)
      CDOTAUserMsg_FoundNeutralItemOrBuilder {
    // Use CDOTAUserMsg_FoundNeutralItem.newBuilder() to construct.
    private CDOTAUserMsg_FoundNeutralItem(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_FoundNeutralItem(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_FoundNeutralItem defaultInstance;
    public static CDOTAUserMsg_FoundNeutralItem getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_FoundNeutralItem getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_FoundNeutralItem(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              playerId_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              itemAbilityId_ = input.readUInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              itemTier_ = input.readUInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              tierItemCount_ = input.readUInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_FoundNeutralItem_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_FoundNeutralItem_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_FoundNeutralItem.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_FoundNeutralItem.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_FoundNeutralItem parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_FoundNeutralItem(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int PLAYER_ID_FIELD_NUMBER = 1;
    private int playerId_;
    /**
     * optional uint32 player_id = 1;
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional uint32 player_id = 1;
     */
    public int getPlayerId() {
      return playerId_;
    }

    public static final int ITEM_ABILITY_ID_FIELD_NUMBER = 2;
    private int itemAbilityId_;
    /**
     * optional uint32 item_ability_id = 2;
     */
    public boolean hasItemAbilityId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional uint32 item_ability_id = 2;
     */
    public int getItemAbilityId() {
      return itemAbilityId_;
    }

    public static final int ITEM_TIER_FIELD_NUMBER = 3;
    private int itemTier_;
    /**
     * optional uint32 item_tier = 3;
     */
    public boolean hasItemTier() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional uint32 item_tier = 3;
     */
    public int getItemTier() {
      return itemTier_;
    }

    public static final int TIER_ITEM_COUNT_FIELD_NUMBER = 4;
    private int tierItemCount_;
    /**
     * optional uint32 tier_item_count = 4;
     */
    public boolean hasTierItemCount() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional uint32 tier_item_count = 4;
     */
    public int getTierItemCount() {
      return tierItemCount_;
    }

    private void initFields() {
      playerId_ = 0;
      itemAbilityId_ = 0;
      itemTier_ = 0;
      tierItemCount_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, itemAbilityId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeUInt32(3, itemTier_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeUInt32(4, tierItemCount_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, itemAbilityId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, itemTier_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(4, tierItemCount_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_FoundNeutralItem parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_FoundNeutralItem parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_FoundNeutralItem parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_FoundNeutralItem parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_FoundNeutralItem parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_FoundNeutralItem parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_FoundNeutralItem parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_FoundNeutralItem parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_FoundNeutralItem parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_FoundNeutralItem parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_FoundNeutralItem prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_FoundNeutralItem}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_FoundNeutralItem)
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_FoundNeutralItemOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_FoundNeutralItem_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_FoundNeutralItem_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_FoundNeutralItem.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_FoundNeutralItem.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_FoundNeutralItem.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        itemAbilityId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        itemTier_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        tierItemCount_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_FoundNeutralItem_descriptor;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_FoundNeutralItem getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_FoundNeutralItem.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_FoundNeutralItem build() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_FoundNeutralItem result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_FoundNeutralItem buildPartial() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_FoundNeutralItem result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_FoundNeutralItem(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.playerId_ = playerId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.itemAbilityId_ = itemAbilityId_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.itemTier_ = itemTier_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.tierItemCount_ = tierItemCount_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_FoundNeutralItem) {
          return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_FoundNeutralItem)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_FoundNeutralItem other) {
        if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_FoundNeutralItem.getDefaultInstance()) return this;
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        if (other.hasItemAbilityId()) {
          setItemAbilityId(other.getItemAbilityId());
        }
        if (other.hasItemTier()) {
          setItemTier(other.getItemTier());
        }
        if (other.hasTierItemCount()) {
          setTierItemCount(other.getTierItemCount());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_FoundNeutralItem parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_FoundNeutralItem) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int playerId_ ;
      /**
       * optional uint32 player_id = 1;
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional uint32 player_id = 1;
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * optional uint32 player_id = 1;
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000001;
        playerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 player_id = 1;
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        onChanged();
        return this;
      }

      private int itemAbilityId_ ;
      /**
       * optional uint32 item_ability_id = 2;
       */
      public boolean hasItemAbilityId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional uint32 item_ability_id = 2;
       */
      public int getItemAbilityId() {
        return itemAbilityId_;
      }
      /**
       * optional uint32 item_ability_id = 2;
       */
      public Builder setItemAbilityId(int value) {
        bitField0_ |= 0x00000002;
        itemAbilityId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 item_ability_id = 2;
       */
      public Builder clearItemAbilityId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        itemAbilityId_ = 0;
        onChanged();
        return this;
      }

      private int itemTier_ ;
      /**
       * optional uint32 item_tier = 3;
       */
      public boolean hasItemTier() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional uint32 item_tier = 3;
       */
      public int getItemTier() {
        return itemTier_;
      }
      /**
       * optional uint32 item_tier = 3;
       */
      public Builder setItemTier(int value) {
        bitField0_ |= 0x00000004;
        itemTier_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 item_tier = 3;
       */
      public Builder clearItemTier() {
        bitField0_ = (bitField0_ & ~0x00000004);
        itemTier_ = 0;
        onChanged();
        return this;
      }

      private int tierItemCount_ ;
      /**
       * optional uint32 tier_item_count = 4;
       */
      public boolean hasTierItemCount() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional uint32 tier_item_count = 4;
       */
      public int getTierItemCount() {
        return tierItemCount_;
      }
      /**
       * optional uint32 tier_item_count = 4;
       */
      public Builder setTierItemCount(int value) {
        bitField0_ |= 0x00000008;
        tierItemCount_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 tier_item_count = 4;
       */
      public Builder clearTierItemCount() {
        bitField0_ = (bitField0_ & ~0x00000008);
        tierItemCount_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_FoundNeutralItem)
    }

    static {
      defaultInstance = new CDOTAUserMsg_FoundNeutralItem(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_FoundNeutralItem)
  }

  public interface CDOTAUserMsg_OutpostCapturedOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_OutpostCaptured)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional uint32 outpost_entindex = 1;
     */
    boolean hasOutpostEntindex();
    /**
     * optional uint32 outpost_entindex = 1;
     */
    int getOutpostEntindex();

    /**
     * optional uint32 team_id = 2;
     */
    boolean hasTeamId();
    /**
     * optional uint32 team_id = 2;
     */
    int getTeamId();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_OutpostCaptured}
   */
  public static final class CDOTAUserMsg_OutpostCaptured extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_OutpostCaptured)
      CDOTAUserMsg_OutpostCapturedOrBuilder {
    // Use CDOTAUserMsg_OutpostCaptured.newBuilder() to construct.
    private CDOTAUserMsg_OutpostCaptured(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_OutpostCaptured(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_OutpostCaptured defaultInstance;
    public static CDOTAUserMsg_OutpostCaptured getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_OutpostCaptured getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_OutpostCaptured(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              outpostEntindex_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              teamId_ = input.readUInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_OutpostCaptured_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_OutpostCaptured_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OutpostCaptured.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OutpostCaptured.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_OutpostCaptured parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_OutpostCaptured(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int OUTPOST_ENTINDEX_FIELD_NUMBER = 1;
    private int outpostEntindex_;
    /**
     * optional uint32 outpost_entindex = 1;
     */
    public boolean hasOutpostEntindex() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional uint32 outpost_entindex = 1;
     */
    public int getOutpostEntindex() {
      return outpostEntindex_;
    }

    public static final int TEAM_ID_FIELD_NUMBER = 2;
    private int teamId_;
    /**
     * optional uint32 team_id = 2;
     */
    public boolean hasTeamId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional uint32 team_id = 2;
     */
    public int getTeamId() {
      return teamId_;
    }

    private void initFields() {
      outpostEntindex_ = 0;
      teamId_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, outpostEntindex_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, teamId_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, outpostEntindex_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, teamId_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OutpostCaptured parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OutpostCaptured parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OutpostCaptured parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OutpostCaptured parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OutpostCaptured parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OutpostCaptured parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OutpostCaptured parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OutpostCaptured parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OutpostCaptured parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OutpostCaptured parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OutpostCaptured prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_OutpostCaptured}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_OutpostCaptured)
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OutpostCapturedOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_OutpostCaptured_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_OutpostCaptured_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OutpostCaptured.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OutpostCaptured.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OutpostCaptured.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        outpostEntindex_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        teamId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_OutpostCaptured_descriptor;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OutpostCaptured getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OutpostCaptured.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OutpostCaptured build() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OutpostCaptured result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OutpostCaptured buildPartial() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OutpostCaptured result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OutpostCaptured(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.outpostEntindex_ = outpostEntindex_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.teamId_ = teamId_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OutpostCaptured) {
          return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OutpostCaptured)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OutpostCaptured other) {
        if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OutpostCaptured.getDefaultInstance()) return this;
        if (other.hasOutpostEntindex()) {
          setOutpostEntindex(other.getOutpostEntindex());
        }
        if (other.hasTeamId()) {
          setTeamId(other.getTeamId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OutpostCaptured parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OutpostCaptured) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int outpostEntindex_ ;
      /**
       * optional uint32 outpost_entindex = 1;
       */
      public boolean hasOutpostEntindex() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional uint32 outpost_entindex = 1;
       */
      public int getOutpostEntindex() {
        return outpostEntindex_;
      }
      /**
       * optional uint32 outpost_entindex = 1;
       */
      public Builder setOutpostEntindex(int value) {
        bitField0_ |= 0x00000001;
        outpostEntindex_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 outpost_entindex = 1;
       */
      public Builder clearOutpostEntindex() {
        bitField0_ = (bitField0_ & ~0x00000001);
        outpostEntindex_ = 0;
        onChanged();
        return this;
      }

      private int teamId_ ;
      /**
       * optional uint32 team_id = 2;
       */
      public boolean hasTeamId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional uint32 team_id = 2;
       */
      public int getTeamId() {
        return teamId_;
      }
      /**
       * optional uint32 team_id = 2;
       */
      public Builder setTeamId(int value) {
        bitField0_ |= 0x00000002;
        teamId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 team_id = 2;
       */
      public Builder clearTeamId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        teamId_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_OutpostCaptured)
    }

    static {
      defaultInstance = new CDOTAUserMsg_OutpostCaptured(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_OutpostCaptured)
  }

  public interface CDOTAUserMsg_OutpostGrantedXPOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_OutpostGrantedXP)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional uint32 team_id = 1;
     */
    boolean hasTeamId();
    /**
     * optional uint32 team_id = 1;
     */
    int getTeamId();

    /**
     * optional uint32 xp_amount = 2;
     */
    boolean hasXpAmount();
    /**
     * optional uint32 xp_amount = 2;
     */
    int getXpAmount();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_OutpostGrantedXP}
   */
  public static final class CDOTAUserMsg_OutpostGrantedXP extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_OutpostGrantedXP)
      CDOTAUserMsg_OutpostGrantedXPOrBuilder {
    // Use CDOTAUserMsg_OutpostGrantedXP.newBuilder() to construct.
    private CDOTAUserMsg_OutpostGrantedXP(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_OutpostGrantedXP(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_OutpostGrantedXP defaultInstance;
    public static CDOTAUserMsg_OutpostGrantedXP getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_OutpostGrantedXP getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_OutpostGrantedXP(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              teamId_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              xpAmount_ = input.readUInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_OutpostGrantedXP_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_OutpostGrantedXP_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OutpostGrantedXP.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OutpostGrantedXP.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_OutpostGrantedXP parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_OutpostGrantedXP(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int TEAM_ID_FIELD_NUMBER = 1;
    private int teamId_;
    /**
     * optional uint32 team_id = 1;
     */
    public boolean hasTeamId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional uint32 team_id = 1;
     */
    public int getTeamId() {
      return teamId_;
    }

    public static final int XP_AMOUNT_FIELD_NUMBER = 2;
    private int xpAmount_;
    /**
     * optional uint32 xp_amount = 2;
     */
    public boolean hasXpAmount() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional uint32 xp_amount = 2;
     */
    public int getXpAmount() {
      return xpAmount_;
    }

    private void initFields() {
      teamId_ = 0;
      xpAmount_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, teamId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, xpAmount_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, teamId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, xpAmount_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OutpostGrantedXP parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OutpostGrantedXP parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OutpostGrantedXP parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OutpostGrantedXP parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OutpostGrantedXP parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OutpostGrantedXP parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OutpostGrantedXP parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OutpostGrantedXP parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OutpostGrantedXP parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OutpostGrantedXP parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OutpostGrantedXP prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_OutpostGrantedXP}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_OutpostGrantedXP)
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OutpostGrantedXPOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_OutpostGrantedXP_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_OutpostGrantedXP_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OutpostGrantedXP.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OutpostGrantedXP.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OutpostGrantedXP.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        teamId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        xpAmount_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_OutpostGrantedXP_descriptor;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OutpostGrantedXP getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OutpostGrantedXP.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OutpostGrantedXP build() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OutpostGrantedXP result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OutpostGrantedXP buildPartial() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OutpostGrantedXP result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OutpostGrantedXP(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.teamId_ = teamId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.xpAmount_ = xpAmount_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OutpostGrantedXP) {
          return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OutpostGrantedXP)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OutpostGrantedXP other) {
        if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OutpostGrantedXP.getDefaultInstance()) return this;
        if (other.hasTeamId()) {
          setTeamId(other.getTeamId());
        }
        if (other.hasXpAmount()) {
          setXpAmount(other.getXpAmount());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OutpostGrantedXP parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_OutpostGrantedXP) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int teamId_ ;
      /**
       * optional uint32 team_id = 1;
       */
      public boolean hasTeamId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional uint32 team_id = 1;
       */
      public int getTeamId() {
        return teamId_;
      }
      /**
       * optional uint32 team_id = 1;
       */
      public Builder setTeamId(int value) {
        bitField0_ |= 0x00000001;
        teamId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 team_id = 1;
       */
      public Builder clearTeamId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        teamId_ = 0;
        onChanged();
        return this;
      }

      private int xpAmount_ ;
      /**
       * optional uint32 xp_amount = 2;
       */
      public boolean hasXpAmount() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional uint32 xp_amount = 2;
       */
      public int getXpAmount() {
        return xpAmount_;
      }
      /**
       * optional uint32 xp_amount = 2;
       */
      public Builder setXpAmount(int value) {
        bitField0_ |= 0x00000002;
        xpAmount_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 xp_amount = 2;
       */
      public Builder clearXpAmount() {
        bitField0_ = (bitField0_ & ~0x00000002);
        xpAmount_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_OutpostGrantedXP)
    }

    static {
      defaultInstance = new CDOTAUserMsg_OutpostGrantedXP(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_OutpostGrantedXP)
  }

  public interface CDOTAUserMsg_MoveCameraToUnitOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_MoveCameraToUnit)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional int32 unit_ehandle = 1;
     */
    boolean hasUnitEhandle();
    /**
     * optional int32 unit_ehandle = 1;
     */
    int getUnitEhandle();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_MoveCameraToUnit}
   */
  public static final class CDOTAUserMsg_MoveCameraToUnit extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_MoveCameraToUnit)
      CDOTAUserMsg_MoveCameraToUnitOrBuilder {
    // Use CDOTAUserMsg_MoveCameraToUnit.newBuilder() to construct.
    private CDOTAUserMsg_MoveCameraToUnit(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_MoveCameraToUnit(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_MoveCameraToUnit defaultInstance;
    public static CDOTAUserMsg_MoveCameraToUnit getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_MoveCameraToUnit getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_MoveCameraToUnit(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              unitEhandle_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_MoveCameraToUnit_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_MoveCameraToUnit_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MoveCameraToUnit.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MoveCameraToUnit.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_MoveCameraToUnit parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_MoveCameraToUnit(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int UNIT_EHANDLE_FIELD_NUMBER = 1;
    private int unitEhandle_;
    /**
     * optional int32 unit_ehandle = 1;
     */
    public boolean hasUnitEhandle() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 unit_ehandle = 1;
     */
    public int getUnitEhandle() {
      return unitEhandle_;
    }

    private void initFields() {
      unitEhandle_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, unitEhandle_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, unitEhandle_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MoveCameraToUnit parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MoveCameraToUnit parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MoveCameraToUnit parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MoveCameraToUnit parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MoveCameraToUnit parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MoveCameraToUnit parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MoveCameraToUnit parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MoveCameraToUnit parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MoveCameraToUnit parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MoveCameraToUnit parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MoveCameraToUnit prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_MoveCameraToUnit}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_MoveCameraToUnit)
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MoveCameraToUnitOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_MoveCameraToUnit_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_MoveCameraToUnit_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MoveCameraToUnit.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MoveCameraToUnit.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MoveCameraToUnit.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        unitEhandle_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_MoveCameraToUnit_descriptor;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MoveCameraToUnit getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MoveCameraToUnit.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MoveCameraToUnit build() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MoveCameraToUnit result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MoveCameraToUnit buildPartial() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MoveCameraToUnit result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MoveCameraToUnit(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.unitEhandle_ = unitEhandle_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MoveCameraToUnit) {
          return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MoveCameraToUnit)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MoveCameraToUnit other) {
        if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MoveCameraToUnit.getDefaultInstance()) return this;
        if (other.hasUnitEhandle()) {
          setUnitEhandle(other.getUnitEhandle());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MoveCameraToUnit parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MoveCameraToUnit) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int unitEhandle_ ;
      /**
       * optional int32 unit_ehandle = 1;
       */
      public boolean hasUnitEhandle() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 unit_ehandle = 1;
       */
      public int getUnitEhandle() {
        return unitEhandle_;
      }
      /**
       * optional int32 unit_ehandle = 1;
       */
      public Builder setUnitEhandle(int value) {
        bitField0_ |= 0x00000001;
        unitEhandle_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 unit_ehandle = 1;
       */
      public Builder clearUnitEhandle() {
        bitField0_ = (bitField0_ & ~0x00000001);
        unitEhandle_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_MoveCameraToUnit)
    }

    static {
      defaultInstance = new CDOTAUserMsg_MoveCameraToUnit(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_MoveCameraToUnit)
  }

  public interface CDOTAUserMsg_PauseMinigameDataOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_PauseMinigameData)
      com.google.protobuf.MessageOrBuilder {

    /**
     * repeated .CDOTAUserMsg_PauseMinigameData.DataBit data_bits = 1;
     */
    java.util.List 
        getDataBitsList();
    /**
     * repeated .CDOTAUserMsg_PauseMinigameData.DataBit data_bits = 1;
     */
    skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PauseMinigameData.DataBit getDataBits(int index);
    /**
     * repeated .CDOTAUserMsg_PauseMinigameData.DataBit data_bits = 1;
     */
    int getDataBitsCount();
    /**
     * repeated .CDOTAUserMsg_PauseMinigameData.DataBit data_bits = 1;
     */
    java.util.List 
        getDataBitsOrBuilderList();
    /**
     * repeated .CDOTAUserMsg_PauseMinigameData.DataBit data_bits = 1;
     */
    skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PauseMinigameData.DataBitOrBuilder getDataBitsOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_PauseMinigameData}
   */
  public static final class CDOTAUserMsg_PauseMinigameData extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_PauseMinigameData)
      CDOTAUserMsg_PauseMinigameDataOrBuilder {
    // Use CDOTAUserMsg_PauseMinigameData.newBuilder() to construct.
    private CDOTAUserMsg_PauseMinigameData(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_PauseMinigameData(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_PauseMinigameData defaultInstance;
    public static CDOTAUserMsg_PauseMinigameData getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_PauseMinigameData getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_PauseMinigameData(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                dataBits_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000001;
              }
              dataBits_.add(input.readMessage(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PauseMinigameData.DataBit.PARSER, extensionRegistry));
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
          dataBits_ = java.util.Collections.unmodifiableList(dataBits_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_PauseMinigameData_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_PauseMinigameData_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PauseMinigameData.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PauseMinigameData.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_PauseMinigameData parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_PauseMinigameData(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    public interface DataBitOrBuilder extends
        // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_PauseMinigameData.DataBit)
        com.google.protobuf.MessageOrBuilder {

      /**
       * optional uint32 index = 1;
       */
      boolean hasIndex();
      /**
       * optional uint32 index = 1;
       */
      int getIndex();

      /**
       * optional int32 data = 2;
       */
      boolean hasData();
      /**
       * optional int32 data = 2;
       */
      int getData();

      /**
       * optional int64 data_extra = 3;
       */
      boolean hasDataExtra();
      /**
       * optional int64 data_extra = 3;
       */
      long getDataExtra();
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_PauseMinigameData.DataBit}
     */
    public static final class DataBit extends
        com.google.protobuf.GeneratedMessage implements
        // @@protoc_insertion_point(message_implements:CDOTAUserMsg_PauseMinigameData.DataBit)
        DataBitOrBuilder {
      // Use DataBit.newBuilder() to construct.
      private DataBit(com.google.protobuf.GeneratedMessage.Builder builder) {
        super(builder);
        this.unknownFields = builder.getUnknownFields();
      }
      private DataBit(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

      private static final DataBit defaultInstance;
      public static DataBit getDefaultInstance() {
        return defaultInstance;
      }

      public DataBit getDefaultInstanceForType() {
        return defaultInstance;
      }

      private final com.google.protobuf.UnknownFieldSet unknownFields;
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
          getUnknownFields() {
        return this.unknownFields;
      }
      private DataBit(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        initFields();
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
              case 8: {
                bitField0_ |= 0x00000001;
                index_ = input.readUInt32();
                break;
              }
              case 16: {
                bitField0_ |= 0x00000002;
                data_ = input.readInt32();
                break;
              }
              case 24: {
                bitField0_ |= 0x00000004;
                dataExtra_ = input.readInt64();
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e.getMessage()).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_PauseMinigameData_DataBit_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_PauseMinigameData_DataBit_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PauseMinigameData.DataBit.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PauseMinigameData.DataBit.Builder.class);
      }

      public static com.google.protobuf.Parser PARSER =
          new com.google.protobuf.AbstractParser() {
        public DataBit parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new DataBit(input, extensionRegistry);
        }
      };

      @java.lang.Override
      public com.google.protobuf.Parser getParserForType() {
        return PARSER;
      }

      private int bitField0_;
      public static final int INDEX_FIELD_NUMBER = 1;
      private int index_;
      /**
       * optional uint32 index = 1;
       */
      public boolean hasIndex() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional uint32 index = 1;
       */
      public int getIndex() {
        return index_;
      }

      public static final int DATA_FIELD_NUMBER = 2;
      private int data_;
      /**
       * optional int32 data = 2;
       */
      public boolean hasData() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional int32 data = 2;
       */
      public int getData() {
        return data_;
      }

      public static final int DATA_EXTRA_FIELD_NUMBER = 3;
      private long dataExtra_;
      /**
       * optional int64 data_extra = 3;
       */
      public boolean hasDataExtra() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional int64 data_extra = 3;
       */
      public long getDataExtra() {
        return dataExtra_;
      }

      private void initFields() {
        index_ = 0;
        data_ = 0;
        dataExtra_ = 0L;
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeUInt32(1, index_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeInt32(2, data_);
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          output.writeInt64(3, dataExtra_);
        }
        getUnknownFields().writeTo(output);
      }

      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;

        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeUInt32Size(1, index_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(2, data_);
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt64Size(3, dataExtra_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.Object writeReplace()
          throws java.io.ObjectStreamException {
        return super.writeReplace();
      }

      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PauseMinigameData.DataBit parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PauseMinigameData.DataBit parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PauseMinigameData.DataBit parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PauseMinigameData.DataBit parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PauseMinigameData.DataBit parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PauseMinigameData.DataBit parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PauseMinigameData.DataBit parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PauseMinigameData.DataBit parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PauseMinigameData.DataBit parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PauseMinigameData.DataBit parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }

      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PauseMinigameData.DataBit prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code CDOTAUserMsg_PauseMinigameData.DataBit}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder implements
          // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_PauseMinigameData.DataBit)
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PauseMinigameData.DataBitOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_PauseMinigameData_DataBit_descriptor;
        }

        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_PauseMinigameData_DataBit_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PauseMinigameData.DataBit.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PauseMinigameData.DataBit.Builder.class);
        }

        // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PauseMinigameData.DataBit.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          }
        }
        private static Builder create() {
          return new Builder();
        }

        public Builder clear() {
          super.clear();
          index_ = 0;
          bitField0_ = (bitField0_ & ~0x00000001);
          data_ = 0;
          bitField0_ = (bitField0_ & ~0x00000002);
          dataExtra_ = 0L;
          bitField0_ = (bitField0_ & ~0x00000004);
          return this;
        }

        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }

        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_PauseMinigameData_DataBit_descriptor;
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PauseMinigameData.DataBit getDefaultInstanceForType() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PauseMinigameData.DataBit.getDefaultInstance();
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PauseMinigameData.DataBit build() {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PauseMinigameData.DataBit result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PauseMinigameData.DataBit buildPartial() {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PauseMinigameData.DataBit result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PauseMinigameData.DataBit(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.index_ = index_;
          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
            to_bitField0_ |= 0x00000002;
          }
          result.data_ = data_;
          if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
            to_bitField0_ |= 0x00000004;
          }
          result.dataExtra_ = dataExtra_;
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }

        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PauseMinigameData.DataBit) {
            return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PauseMinigameData.DataBit)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PauseMinigameData.DataBit other) {
          if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PauseMinigameData.DataBit.getDefaultInstance()) return this;
          if (other.hasIndex()) {
            setIndex(other.getIndex());
          }
          if (other.hasData()) {
            setData(other.getData());
          }
          if (other.hasDataExtra()) {
            setDataExtra(other.getDataExtra());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }

        public final boolean isInitialized() {
          return true;
        }

        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PauseMinigameData.DataBit parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PauseMinigameData.DataBit) e.getUnfinishedMessage();
            throw e;
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        private int index_ ;
        /**
         * optional uint32 index = 1;
         */
        public boolean hasIndex() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * optional uint32 index = 1;
         */
        public int getIndex() {
          return index_;
        }
        /**
         * optional uint32 index = 1;
         */
        public Builder setIndex(int value) {
          bitField0_ |= 0x00000001;
          index_ = value;
          onChanged();
          return this;
        }
        /**
         * optional uint32 index = 1;
         */
        public Builder clearIndex() {
          bitField0_ = (bitField0_ & ~0x00000001);
          index_ = 0;
          onChanged();
          return this;
        }

        private int data_ ;
        /**
         * optional int32 data = 2;
         */
        public boolean hasData() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        /**
         * optional int32 data = 2;
         */
        public int getData() {
          return data_;
        }
        /**
         * optional int32 data = 2;
         */
        public Builder setData(int value) {
          bitField0_ |= 0x00000002;
          data_ = value;
          onChanged();
          return this;
        }
        /**
         * optional int32 data = 2;
         */
        public Builder clearData() {
          bitField0_ = (bitField0_ & ~0x00000002);
          data_ = 0;
          onChanged();
          return this;
        }

        private long dataExtra_ ;
        /**
         * optional int64 data_extra = 3;
         */
        public boolean hasDataExtra() {
          return ((bitField0_ & 0x00000004) == 0x00000004);
        }
        /**
         * optional int64 data_extra = 3;
         */
        public long getDataExtra() {
          return dataExtra_;
        }
        /**
         * optional int64 data_extra = 3;
         */
        public Builder setDataExtra(long value) {
          bitField0_ |= 0x00000004;
          dataExtra_ = value;
          onChanged();
          return this;
        }
        /**
         * optional int64 data_extra = 3;
         */
        public Builder clearDataExtra() {
          bitField0_ = (bitField0_ & ~0x00000004);
          dataExtra_ = 0L;
          onChanged();
          return this;
        }

        // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_PauseMinigameData.DataBit)
      }

      static {
        defaultInstance = new DataBit(true);
        defaultInstance.initFields();
      }

      // @@protoc_insertion_point(class_scope:CDOTAUserMsg_PauseMinigameData.DataBit)
    }

    public static final int DATA_BITS_FIELD_NUMBER = 1;
    private java.util.List dataBits_;
    /**
     * repeated .CDOTAUserMsg_PauseMinigameData.DataBit data_bits = 1;
     */
    public java.util.List getDataBitsList() {
      return dataBits_;
    }
    /**
     * repeated .CDOTAUserMsg_PauseMinigameData.DataBit data_bits = 1;
     */
    public java.util.List 
        getDataBitsOrBuilderList() {
      return dataBits_;
    }
    /**
     * repeated .CDOTAUserMsg_PauseMinigameData.DataBit data_bits = 1;
     */
    public int getDataBitsCount() {
      return dataBits_.size();
    }
    /**
     * repeated .CDOTAUserMsg_PauseMinigameData.DataBit data_bits = 1;
     */
    public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PauseMinigameData.DataBit getDataBits(int index) {
      return dataBits_.get(index);
    }
    /**
     * repeated .CDOTAUserMsg_PauseMinigameData.DataBit data_bits = 1;
     */
    public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PauseMinigameData.DataBitOrBuilder getDataBitsOrBuilder(
        int index) {
      return dataBits_.get(index);
    }

    private void initFields() {
      dataBits_ = java.util.Collections.emptyList();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      for (int i = 0; i < dataBits_.size(); i++) {
        output.writeMessage(1, dataBits_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      for (int i = 0; i < dataBits_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, dataBits_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PauseMinigameData parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PauseMinigameData parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PauseMinigameData parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PauseMinigameData parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PauseMinigameData parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PauseMinigameData parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PauseMinigameData parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PauseMinigameData parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PauseMinigameData parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PauseMinigameData parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PauseMinigameData prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_PauseMinigameData}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_PauseMinigameData)
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PauseMinigameDataOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_PauseMinigameData_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_PauseMinigameData_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PauseMinigameData.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PauseMinigameData.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PauseMinigameData.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getDataBitsFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        if (dataBitsBuilder_ == null) {
          dataBits_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          dataBitsBuilder_.clear();
        }
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_PauseMinigameData_descriptor;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PauseMinigameData getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PauseMinigameData.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PauseMinigameData build() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PauseMinigameData result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PauseMinigameData buildPartial() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PauseMinigameData result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PauseMinigameData(this);
        int from_bitField0_ = bitField0_;
        if (dataBitsBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            dataBits_ = java.util.Collections.unmodifiableList(dataBits_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.dataBits_ = dataBits_;
        } else {
          result.dataBits_ = dataBitsBuilder_.build();
        }
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PauseMinigameData) {
          return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PauseMinigameData)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PauseMinigameData other) {
        if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PauseMinigameData.getDefaultInstance()) return this;
        if (dataBitsBuilder_ == null) {
          if (!other.dataBits_.isEmpty()) {
            if (dataBits_.isEmpty()) {
              dataBits_ = other.dataBits_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureDataBitsIsMutable();
              dataBits_.addAll(other.dataBits_);
            }
            onChanged();
          }
        } else {
          if (!other.dataBits_.isEmpty()) {
            if (dataBitsBuilder_.isEmpty()) {
              dataBitsBuilder_.dispose();
              dataBitsBuilder_ = null;
              dataBits_ = other.dataBits_;
              bitField0_ = (bitField0_ & ~0x00000001);
              dataBitsBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getDataBitsFieldBuilder() : null;
            } else {
              dataBitsBuilder_.addAllMessages(other.dataBits_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PauseMinigameData parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PauseMinigameData) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.util.List dataBits_ =
        java.util.Collections.emptyList();
      private void ensureDataBitsIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          dataBits_ = new java.util.ArrayList(dataBits_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PauseMinigameData.DataBit, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PauseMinigameData.DataBit.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PauseMinigameData.DataBitOrBuilder> dataBitsBuilder_;

      /**
       * repeated .CDOTAUserMsg_PauseMinigameData.DataBit data_bits = 1;
       */
      public java.util.List getDataBitsList() {
        if (dataBitsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(dataBits_);
        } else {
          return dataBitsBuilder_.getMessageList();
        }
      }
      /**
       * repeated .CDOTAUserMsg_PauseMinigameData.DataBit data_bits = 1;
       */
      public int getDataBitsCount() {
        if (dataBitsBuilder_ == null) {
          return dataBits_.size();
        } else {
          return dataBitsBuilder_.getCount();
        }
      }
      /**
       * repeated .CDOTAUserMsg_PauseMinigameData.DataBit data_bits = 1;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PauseMinigameData.DataBit getDataBits(int index) {
        if (dataBitsBuilder_ == null) {
          return dataBits_.get(index);
        } else {
          return dataBitsBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .CDOTAUserMsg_PauseMinigameData.DataBit data_bits = 1;
       */
      public Builder setDataBits(
          int index, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PauseMinigameData.DataBit value) {
        if (dataBitsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureDataBitsIsMutable();
          dataBits_.set(index, value);
          onChanged();
        } else {
          dataBitsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_PauseMinigameData.DataBit data_bits = 1;
       */
      public Builder setDataBits(
          int index, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PauseMinigameData.DataBit.Builder builderForValue) {
        if (dataBitsBuilder_ == null) {
          ensureDataBitsIsMutable();
          dataBits_.set(index, builderForValue.build());
          onChanged();
        } else {
          dataBitsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_PauseMinigameData.DataBit data_bits = 1;
       */
      public Builder addDataBits(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PauseMinigameData.DataBit value) {
        if (dataBitsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureDataBitsIsMutable();
          dataBits_.add(value);
          onChanged();
        } else {
          dataBitsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_PauseMinigameData.DataBit data_bits = 1;
       */
      public Builder addDataBits(
          int index, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PauseMinigameData.DataBit value) {
        if (dataBitsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureDataBitsIsMutable();
          dataBits_.add(index, value);
          onChanged();
        } else {
          dataBitsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_PauseMinigameData.DataBit data_bits = 1;
       */
      public Builder addDataBits(
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PauseMinigameData.DataBit.Builder builderForValue) {
        if (dataBitsBuilder_ == null) {
          ensureDataBitsIsMutable();
          dataBits_.add(builderForValue.build());
          onChanged();
        } else {
          dataBitsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_PauseMinigameData.DataBit data_bits = 1;
       */
      public Builder addDataBits(
          int index, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PauseMinigameData.DataBit.Builder builderForValue) {
        if (dataBitsBuilder_ == null) {
          ensureDataBitsIsMutable();
          dataBits_.add(index, builderForValue.build());
          onChanged();
        } else {
          dataBitsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_PauseMinigameData.DataBit data_bits = 1;
       */
      public Builder addAllDataBits(
          java.lang.Iterable values) {
        if (dataBitsBuilder_ == null) {
          ensureDataBitsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, dataBits_);
          onChanged();
        } else {
          dataBitsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_PauseMinigameData.DataBit data_bits = 1;
       */
      public Builder clearDataBits() {
        if (dataBitsBuilder_ == null) {
          dataBits_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          dataBitsBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_PauseMinigameData.DataBit data_bits = 1;
       */
      public Builder removeDataBits(int index) {
        if (dataBitsBuilder_ == null) {
          ensureDataBitsIsMutable();
          dataBits_.remove(index);
          onChanged();
        } else {
          dataBitsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_PauseMinigameData.DataBit data_bits = 1;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PauseMinigameData.DataBit.Builder getDataBitsBuilder(
          int index) {
        return getDataBitsFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .CDOTAUserMsg_PauseMinigameData.DataBit data_bits = 1;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PauseMinigameData.DataBitOrBuilder getDataBitsOrBuilder(
          int index) {
        if (dataBitsBuilder_ == null) {
          return dataBits_.get(index);  } else {
          return dataBitsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .CDOTAUserMsg_PauseMinigameData.DataBit data_bits = 1;
       */
      public java.util.List 
           getDataBitsOrBuilderList() {
        if (dataBitsBuilder_ != null) {
          return dataBitsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(dataBits_);
        }
      }
      /**
       * repeated .CDOTAUserMsg_PauseMinigameData.DataBit data_bits = 1;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PauseMinigameData.DataBit.Builder addDataBitsBuilder() {
        return getDataBitsFieldBuilder().addBuilder(
            skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PauseMinigameData.DataBit.getDefaultInstance());
      }
      /**
       * repeated .CDOTAUserMsg_PauseMinigameData.DataBit data_bits = 1;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PauseMinigameData.DataBit.Builder addDataBitsBuilder(
          int index) {
        return getDataBitsFieldBuilder().addBuilder(
            index, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PauseMinigameData.DataBit.getDefaultInstance());
      }
      /**
       * repeated .CDOTAUserMsg_PauseMinigameData.DataBit data_bits = 1;
       */
      public java.util.List 
           getDataBitsBuilderList() {
        return getDataBitsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PauseMinigameData.DataBit, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PauseMinigameData.DataBit.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PauseMinigameData.DataBitOrBuilder> 
          getDataBitsFieldBuilder() {
        if (dataBitsBuilder_ == null) {
          dataBitsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PauseMinigameData.DataBit, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PauseMinigameData.DataBit.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_PauseMinigameData.DataBitOrBuilder>(
                  dataBits_,
                  ((bitField0_ & 0x00000001) == 0x00000001),
                  getParentForChildren(),
                  isClean());
          dataBits_ = null;
        }
        return dataBitsBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_PauseMinigameData)
    }

    static {
      defaultInstance = new CDOTAUserMsg_PauseMinigameData(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_PauseMinigameData)
  }

  public interface CDOTAUserMsg_VersusScene_PlayerBehaviorOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_VersusScene_PlayerBehavior)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional uint32 player_id = 1;
     */
    boolean hasPlayerId();
    /**
     * optional uint32 player_id = 1;
     */
    int getPlayerId();

    /**
     * optional .EDOTAVersusScenePlayerBehavior behavior = 2 [default = VS_PLAYER_BEHAVIOR_PLAY_ACTIVITY];
     */
    boolean hasBehavior();
    /**
     * optional .EDOTAVersusScenePlayerBehavior behavior = 2 [default = VS_PLAYER_BEHAVIOR_PLAY_ACTIVITY];
     */
    skadistats.clarity.wire.common.proto.DotaCommonMessages.EDOTAVersusScenePlayerBehavior getBehavior();

    /**
     * optional .VersusScene_PlayActivity play_activity = 3;
     */
    boolean hasPlayActivity();
    /**
     * optional .VersusScene_PlayActivity play_activity = 3;
     */
    skadistats.clarity.wire.common.proto.DotaCommonMessages.VersusScene_PlayActivity getPlayActivity();
    /**
     * optional .VersusScene_PlayActivity play_activity = 3;
     */
    skadistats.clarity.wire.common.proto.DotaCommonMessages.VersusScene_PlayActivityOrBuilder getPlayActivityOrBuilder();

    /**
     * optional .VersusScene_ChatWheel chat_wheel = 4;
     */
    boolean hasChatWheel();
    /**
     * optional .VersusScene_ChatWheel chat_wheel = 4;
     */
    skadistats.clarity.wire.common.proto.DotaCommonMessages.VersusScene_ChatWheel getChatWheel();
    /**
     * optional .VersusScene_ChatWheel chat_wheel = 4;
     */
    skadistats.clarity.wire.common.proto.DotaCommonMessages.VersusScene_ChatWheelOrBuilder getChatWheelOrBuilder();

    /**
     * optional .VersusScene_PlaybackRate playback_rate = 5;
     */
    boolean hasPlaybackRate();
    /**
     * optional .VersusScene_PlaybackRate playback_rate = 5;
     */
    skadistats.clarity.wire.common.proto.DotaCommonMessages.VersusScene_PlaybackRate getPlaybackRate();
    /**
     * optional .VersusScene_PlaybackRate playback_rate = 5;
     */
    skadistats.clarity.wire.common.proto.DotaCommonMessages.VersusScene_PlaybackRateOrBuilder getPlaybackRateOrBuilder();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_VersusScene_PlayerBehavior}
   */
  public static final class CDOTAUserMsg_VersusScene_PlayerBehavior extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_VersusScene_PlayerBehavior)
      CDOTAUserMsg_VersusScene_PlayerBehaviorOrBuilder {
    // Use CDOTAUserMsg_VersusScene_PlayerBehavior.newBuilder() to construct.
    private CDOTAUserMsg_VersusScene_PlayerBehavior(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_VersusScene_PlayerBehavior(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_VersusScene_PlayerBehavior defaultInstance;
    public static CDOTAUserMsg_VersusScene_PlayerBehavior getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_VersusScene_PlayerBehavior getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_VersusScene_PlayerBehavior(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              playerId_ = input.readUInt32();
              break;
            }
            case 16: {
              int rawValue = input.readEnum();
              skadistats.clarity.wire.common.proto.DotaCommonMessages.EDOTAVersusScenePlayerBehavior value = skadistats.clarity.wire.common.proto.DotaCommonMessages.EDOTAVersusScenePlayerBehavior.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(2, rawValue);
              } else {
                bitField0_ |= 0x00000002;
                behavior_ = value;
              }
              break;
            }
            case 26: {
              skadistats.clarity.wire.common.proto.DotaCommonMessages.VersusScene_PlayActivity.Builder subBuilder = null;
              if (((bitField0_ & 0x00000004) == 0x00000004)) {
                subBuilder = playActivity_.toBuilder();
              }
              playActivity_ = input.readMessage(skadistats.clarity.wire.common.proto.DotaCommonMessages.VersusScene_PlayActivity.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(playActivity_);
                playActivity_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000004;
              break;
            }
            case 34: {
              skadistats.clarity.wire.common.proto.DotaCommonMessages.VersusScene_ChatWheel.Builder subBuilder = null;
              if (((bitField0_ & 0x00000008) == 0x00000008)) {
                subBuilder = chatWheel_.toBuilder();
              }
              chatWheel_ = input.readMessage(skadistats.clarity.wire.common.proto.DotaCommonMessages.VersusScene_ChatWheel.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(chatWheel_);
                chatWheel_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000008;
              break;
            }
            case 42: {
              skadistats.clarity.wire.common.proto.DotaCommonMessages.VersusScene_PlaybackRate.Builder subBuilder = null;
              if (((bitField0_ & 0x00000010) == 0x00000010)) {
                subBuilder = playbackRate_.toBuilder();
              }
              playbackRate_ = input.readMessage(skadistats.clarity.wire.common.proto.DotaCommonMessages.VersusScene_PlaybackRate.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(playbackRate_);
                playbackRate_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000010;
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_VersusScene_PlayerBehavior_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_VersusScene_PlayerBehavior_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_VersusScene_PlayerBehavior.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_VersusScene_PlayerBehavior.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_VersusScene_PlayerBehavior parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_VersusScene_PlayerBehavior(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int PLAYER_ID_FIELD_NUMBER = 1;
    private int playerId_;
    /**
     * optional uint32 player_id = 1;
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional uint32 player_id = 1;
     */
    public int getPlayerId() {
      return playerId_;
    }

    public static final int BEHAVIOR_FIELD_NUMBER = 2;
    private skadistats.clarity.wire.common.proto.DotaCommonMessages.EDOTAVersusScenePlayerBehavior behavior_;
    /**
     * optional .EDOTAVersusScenePlayerBehavior behavior = 2 [default = VS_PLAYER_BEHAVIOR_PLAY_ACTIVITY];
     */
    public boolean hasBehavior() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional .EDOTAVersusScenePlayerBehavior behavior = 2 [default = VS_PLAYER_BEHAVIOR_PLAY_ACTIVITY];
     */
    public skadistats.clarity.wire.common.proto.DotaCommonMessages.EDOTAVersusScenePlayerBehavior getBehavior() {
      return behavior_;
    }

    public static final int PLAY_ACTIVITY_FIELD_NUMBER = 3;
    private skadistats.clarity.wire.common.proto.DotaCommonMessages.VersusScene_PlayActivity playActivity_;
    /**
     * optional .VersusScene_PlayActivity play_activity = 3;
     */
    public boolean hasPlayActivity() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional .VersusScene_PlayActivity play_activity = 3;
     */
    public skadistats.clarity.wire.common.proto.DotaCommonMessages.VersusScene_PlayActivity getPlayActivity() {
      return playActivity_;
    }
    /**
     * optional .VersusScene_PlayActivity play_activity = 3;
     */
    public skadistats.clarity.wire.common.proto.DotaCommonMessages.VersusScene_PlayActivityOrBuilder getPlayActivityOrBuilder() {
      return playActivity_;
    }

    public static final int CHAT_WHEEL_FIELD_NUMBER = 4;
    private skadistats.clarity.wire.common.proto.DotaCommonMessages.VersusScene_ChatWheel chatWheel_;
    /**
     * optional .VersusScene_ChatWheel chat_wheel = 4;
     */
    public boolean hasChatWheel() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional .VersusScene_ChatWheel chat_wheel = 4;
     */
    public skadistats.clarity.wire.common.proto.DotaCommonMessages.VersusScene_ChatWheel getChatWheel() {
      return chatWheel_;
    }
    /**
     * optional .VersusScene_ChatWheel chat_wheel = 4;
     */
    public skadistats.clarity.wire.common.proto.DotaCommonMessages.VersusScene_ChatWheelOrBuilder getChatWheelOrBuilder() {
      return chatWheel_;
    }

    public static final int PLAYBACK_RATE_FIELD_NUMBER = 5;
    private skadistats.clarity.wire.common.proto.DotaCommonMessages.VersusScene_PlaybackRate playbackRate_;
    /**
     * optional .VersusScene_PlaybackRate playback_rate = 5;
     */
    public boolean hasPlaybackRate() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * optional .VersusScene_PlaybackRate playback_rate = 5;
     */
    public skadistats.clarity.wire.common.proto.DotaCommonMessages.VersusScene_PlaybackRate getPlaybackRate() {
      return playbackRate_;
    }
    /**
     * optional .VersusScene_PlaybackRate playback_rate = 5;
     */
    public skadistats.clarity.wire.common.proto.DotaCommonMessages.VersusScene_PlaybackRateOrBuilder getPlaybackRateOrBuilder() {
      return playbackRate_;
    }

    private void initFields() {
      playerId_ = 0;
      behavior_ = skadistats.clarity.wire.common.proto.DotaCommonMessages.EDOTAVersusScenePlayerBehavior.VS_PLAYER_BEHAVIOR_PLAY_ACTIVITY;
      playActivity_ = skadistats.clarity.wire.common.proto.DotaCommonMessages.VersusScene_PlayActivity.getDefaultInstance();
      chatWheel_ = skadistats.clarity.wire.common.proto.DotaCommonMessages.VersusScene_ChatWheel.getDefaultInstance();
      playbackRate_ = skadistats.clarity.wire.common.proto.DotaCommonMessages.VersusScene_PlaybackRate.getDefaultInstance();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeEnum(2, behavior_.getNumber());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeMessage(3, playActivity_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeMessage(4, chatWheel_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeMessage(5, playbackRate_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(2, behavior_.getNumber());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, playActivity_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, chatWheel_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(5, playbackRate_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_VersusScene_PlayerBehavior parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_VersusScene_PlayerBehavior parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_VersusScene_PlayerBehavior parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_VersusScene_PlayerBehavior parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_VersusScene_PlayerBehavior parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_VersusScene_PlayerBehavior parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_VersusScene_PlayerBehavior parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_VersusScene_PlayerBehavior parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_VersusScene_PlayerBehavior parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_VersusScene_PlayerBehavior parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_VersusScene_PlayerBehavior prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_VersusScene_PlayerBehavior}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_VersusScene_PlayerBehavior)
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_VersusScene_PlayerBehaviorOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_VersusScene_PlayerBehavior_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_VersusScene_PlayerBehavior_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_VersusScene_PlayerBehavior.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_VersusScene_PlayerBehavior.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_VersusScene_PlayerBehavior.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getPlayActivityFieldBuilder();
          getChatWheelFieldBuilder();
          getPlaybackRateFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        behavior_ = skadistats.clarity.wire.common.proto.DotaCommonMessages.EDOTAVersusScenePlayerBehavior.VS_PLAYER_BEHAVIOR_PLAY_ACTIVITY;
        bitField0_ = (bitField0_ & ~0x00000002);
        if (playActivityBuilder_ == null) {
          playActivity_ = skadistats.clarity.wire.common.proto.DotaCommonMessages.VersusScene_PlayActivity.getDefaultInstance();
        } else {
          playActivityBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        if (chatWheelBuilder_ == null) {
          chatWheel_ = skadistats.clarity.wire.common.proto.DotaCommonMessages.VersusScene_ChatWheel.getDefaultInstance();
        } else {
          chatWheelBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000008);
        if (playbackRateBuilder_ == null) {
          playbackRate_ = skadistats.clarity.wire.common.proto.DotaCommonMessages.VersusScene_PlaybackRate.getDefaultInstance();
        } else {
          playbackRateBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_VersusScene_PlayerBehavior_descriptor;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_VersusScene_PlayerBehavior getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_VersusScene_PlayerBehavior.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_VersusScene_PlayerBehavior build() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_VersusScene_PlayerBehavior result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_VersusScene_PlayerBehavior buildPartial() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_VersusScene_PlayerBehavior result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_VersusScene_PlayerBehavior(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.playerId_ = playerId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.behavior_ = behavior_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        if (playActivityBuilder_ == null) {
          result.playActivity_ = playActivity_;
        } else {
          result.playActivity_ = playActivityBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        if (chatWheelBuilder_ == null) {
          result.chatWheel_ = chatWheel_;
        } else {
          result.chatWheel_ = chatWheelBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        if (playbackRateBuilder_ == null) {
          result.playbackRate_ = playbackRate_;
        } else {
          result.playbackRate_ = playbackRateBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_VersusScene_PlayerBehavior) {
          return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_VersusScene_PlayerBehavior)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_VersusScene_PlayerBehavior other) {
        if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_VersusScene_PlayerBehavior.getDefaultInstance()) return this;
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        if (other.hasBehavior()) {
          setBehavior(other.getBehavior());
        }
        if (other.hasPlayActivity()) {
          mergePlayActivity(other.getPlayActivity());
        }
        if (other.hasChatWheel()) {
          mergeChatWheel(other.getChatWheel());
        }
        if (other.hasPlaybackRate()) {
          mergePlaybackRate(other.getPlaybackRate());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_VersusScene_PlayerBehavior parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_VersusScene_PlayerBehavior) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int playerId_ ;
      /**
       * optional uint32 player_id = 1;
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional uint32 player_id = 1;
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * optional uint32 player_id = 1;
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000001;
        playerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 player_id = 1;
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        onChanged();
        return this;
      }

      private skadistats.clarity.wire.common.proto.DotaCommonMessages.EDOTAVersusScenePlayerBehavior behavior_ = skadistats.clarity.wire.common.proto.DotaCommonMessages.EDOTAVersusScenePlayerBehavior.VS_PLAYER_BEHAVIOR_PLAY_ACTIVITY;
      /**
       * optional .EDOTAVersusScenePlayerBehavior behavior = 2 [default = VS_PLAYER_BEHAVIOR_PLAY_ACTIVITY];
       */
      public boolean hasBehavior() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional .EDOTAVersusScenePlayerBehavior behavior = 2 [default = VS_PLAYER_BEHAVIOR_PLAY_ACTIVITY];
       */
      public skadistats.clarity.wire.common.proto.DotaCommonMessages.EDOTAVersusScenePlayerBehavior getBehavior() {
        return behavior_;
      }
      /**
       * optional .EDOTAVersusScenePlayerBehavior behavior = 2 [default = VS_PLAYER_BEHAVIOR_PLAY_ACTIVITY];
       */
      public Builder setBehavior(skadistats.clarity.wire.common.proto.DotaCommonMessages.EDOTAVersusScenePlayerBehavior value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        behavior_ = value;
        onChanged();
        return this;
      }
      /**
       * optional .EDOTAVersusScenePlayerBehavior behavior = 2 [default = VS_PLAYER_BEHAVIOR_PLAY_ACTIVITY];
       */
      public Builder clearBehavior() {
        bitField0_ = (bitField0_ & ~0x00000002);
        behavior_ = skadistats.clarity.wire.common.proto.DotaCommonMessages.EDOTAVersusScenePlayerBehavior.VS_PLAYER_BEHAVIOR_PLAY_ACTIVITY;
        onChanged();
        return this;
      }

      private skadistats.clarity.wire.common.proto.DotaCommonMessages.VersusScene_PlayActivity playActivity_ = skadistats.clarity.wire.common.proto.DotaCommonMessages.VersusScene_PlayActivity.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.common.proto.DotaCommonMessages.VersusScene_PlayActivity, skadistats.clarity.wire.common.proto.DotaCommonMessages.VersusScene_PlayActivity.Builder, skadistats.clarity.wire.common.proto.DotaCommonMessages.VersusScene_PlayActivityOrBuilder> playActivityBuilder_;
      /**
       * optional .VersusScene_PlayActivity play_activity = 3;
       */
      public boolean hasPlayActivity() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional .VersusScene_PlayActivity play_activity = 3;
       */
      public skadistats.clarity.wire.common.proto.DotaCommonMessages.VersusScene_PlayActivity getPlayActivity() {
        if (playActivityBuilder_ == null) {
          return playActivity_;
        } else {
          return playActivityBuilder_.getMessage();
        }
      }
      /**
       * optional .VersusScene_PlayActivity play_activity = 3;
       */
      public Builder setPlayActivity(skadistats.clarity.wire.common.proto.DotaCommonMessages.VersusScene_PlayActivity value) {
        if (playActivityBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          playActivity_ = value;
          onChanged();
        } else {
          playActivityBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * optional .VersusScene_PlayActivity play_activity = 3;
       */
      public Builder setPlayActivity(
          skadistats.clarity.wire.common.proto.DotaCommonMessages.VersusScene_PlayActivity.Builder builderForValue) {
        if (playActivityBuilder_ == null) {
          playActivity_ = builderForValue.build();
          onChanged();
        } else {
          playActivityBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * optional .VersusScene_PlayActivity play_activity = 3;
       */
      public Builder mergePlayActivity(skadistats.clarity.wire.common.proto.DotaCommonMessages.VersusScene_PlayActivity value) {
        if (playActivityBuilder_ == null) {
          if (((bitField0_ & 0x00000004) == 0x00000004) &&
              playActivity_ != skadistats.clarity.wire.common.proto.DotaCommonMessages.VersusScene_PlayActivity.getDefaultInstance()) {
            playActivity_ =
              skadistats.clarity.wire.common.proto.DotaCommonMessages.VersusScene_PlayActivity.newBuilder(playActivity_).mergeFrom(value).buildPartial();
          } else {
            playActivity_ = value;
          }
          onChanged();
        } else {
          playActivityBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * optional .VersusScene_PlayActivity play_activity = 3;
       */
      public Builder clearPlayActivity() {
        if (playActivityBuilder_ == null) {
          playActivity_ = skadistats.clarity.wire.common.proto.DotaCommonMessages.VersusScene_PlayActivity.getDefaultInstance();
          onChanged();
        } else {
          playActivityBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }
      /**
       * optional .VersusScene_PlayActivity play_activity = 3;
       */
      public skadistats.clarity.wire.common.proto.DotaCommonMessages.VersusScene_PlayActivity.Builder getPlayActivityBuilder() {
        bitField0_ |= 0x00000004;
        onChanged();
        return getPlayActivityFieldBuilder().getBuilder();
      }
      /**
       * optional .VersusScene_PlayActivity play_activity = 3;
       */
      public skadistats.clarity.wire.common.proto.DotaCommonMessages.VersusScene_PlayActivityOrBuilder getPlayActivityOrBuilder() {
        if (playActivityBuilder_ != null) {
          return playActivityBuilder_.getMessageOrBuilder();
        } else {
          return playActivity_;
        }
      }
      /**
       * optional .VersusScene_PlayActivity play_activity = 3;
       */
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.common.proto.DotaCommonMessages.VersusScene_PlayActivity, skadistats.clarity.wire.common.proto.DotaCommonMessages.VersusScene_PlayActivity.Builder, skadistats.clarity.wire.common.proto.DotaCommonMessages.VersusScene_PlayActivityOrBuilder> 
          getPlayActivityFieldBuilder() {
        if (playActivityBuilder_ == null) {
          playActivityBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              skadistats.clarity.wire.common.proto.DotaCommonMessages.VersusScene_PlayActivity, skadistats.clarity.wire.common.proto.DotaCommonMessages.VersusScene_PlayActivity.Builder, skadistats.clarity.wire.common.proto.DotaCommonMessages.VersusScene_PlayActivityOrBuilder>(
                  getPlayActivity(),
                  getParentForChildren(),
                  isClean());
          playActivity_ = null;
        }
        return playActivityBuilder_;
      }

      private skadistats.clarity.wire.common.proto.DotaCommonMessages.VersusScene_ChatWheel chatWheel_ = skadistats.clarity.wire.common.proto.DotaCommonMessages.VersusScene_ChatWheel.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.common.proto.DotaCommonMessages.VersusScene_ChatWheel, skadistats.clarity.wire.common.proto.DotaCommonMessages.VersusScene_ChatWheel.Builder, skadistats.clarity.wire.common.proto.DotaCommonMessages.VersusScene_ChatWheelOrBuilder> chatWheelBuilder_;
      /**
       * optional .VersusScene_ChatWheel chat_wheel = 4;
       */
      public boolean hasChatWheel() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional .VersusScene_ChatWheel chat_wheel = 4;
       */
      public skadistats.clarity.wire.common.proto.DotaCommonMessages.VersusScene_ChatWheel getChatWheel() {
        if (chatWheelBuilder_ == null) {
          return chatWheel_;
        } else {
          return chatWheelBuilder_.getMessage();
        }
      }
      /**
       * optional .VersusScene_ChatWheel chat_wheel = 4;
       */
      public Builder setChatWheel(skadistats.clarity.wire.common.proto.DotaCommonMessages.VersusScene_ChatWheel value) {
        if (chatWheelBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          chatWheel_ = value;
          onChanged();
        } else {
          chatWheelBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       * optional .VersusScene_ChatWheel chat_wheel = 4;
       */
      public Builder setChatWheel(
          skadistats.clarity.wire.common.proto.DotaCommonMessages.VersusScene_ChatWheel.Builder builderForValue) {
        if (chatWheelBuilder_ == null) {
          chatWheel_ = builderForValue.build();
          onChanged();
        } else {
          chatWheelBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       * optional .VersusScene_ChatWheel chat_wheel = 4;
       */
      public Builder mergeChatWheel(skadistats.clarity.wire.common.proto.DotaCommonMessages.VersusScene_ChatWheel value) {
        if (chatWheelBuilder_ == null) {
          if (((bitField0_ & 0x00000008) == 0x00000008) &&
              chatWheel_ != skadistats.clarity.wire.common.proto.DotaCommonMessages.VersusScene_ChatWheel.getDefaultInstance()) {
            chatWheel_ =
              skadistats.clarity.wire.common.proto.DotaCommonMessages.VersusScene_ChatWheel.newBuilder(chatWheel_).mergeFrom(value).buildPartial();
          } else {
            chatWheel_ = value;
          }
          onChanged();
        } else {
          chatWheelBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       * optional .VersusScene_ChatWheel chat_wheel = 4;
       */
      public Builder clearChatWheel() {
        if (chatWheelBuilder_ == null) {
          chatWheel_ = skadistats.clarity.wire.common.proto.DotaCommonMessages.VersusScene_ChatWheel.getDefaultInstance();
          onChanged();
        } else {
          chatWheelBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }
      /**
       * optional .VersusScene_ChatWheel chat_wheel = 4;
       */
      public skadistats.clarity.wire.common.proto.DotaCommonMessages.VersusScene_ChatWheel.Builder getChatWheelBuilder() {
        bitField0_ |= 0x00000008;
        onChanged();
        return getChatWheelFieldBuilder().getBuilder();
      }
      /**
       * optional .VersusScene_ChatWheel chat_wheel = 4;
       */
      public skadistats.clarity.wire.common.proto.DotaCommonMessages.VersusScene_ChatWheelOrBuilder getChatWheelOrBuilder() {
        if (chatWheelBuilder_ != null) {
          return chatWheelBuilder_.getMessageOrBuilder();
        } else {
          return chatWheel_;
        }
      }
      /**
       * optional .VersusScene_ChatWheel chat_wheel = 4;
       */
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.common.proto.DotaCommonMessages.VersusScene_ChatWheel, skadistats.clarity.wire.common.proto.DotaCommonMessages.VersusScene_ChatWheel.Builder, skadistats.clarity.wire.common.proto.DotaCommonMessages.VersusScene_ChatWheelOrBuilder> 
          getChatWheelFieldBuilder() {
        if (chatWheelBuilder_ == null) {
          chatWheelBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              skadistats.clarity.wire.common.proto.DotaCommonMessages.VersusScene_ChatWheel, skadistats.clarity.wire.common.proto.DotaCommonMessages.VersusScene_ChatWheel.Builder, skadistats.clarity.wire.common.proto.DotaCommonMessages.VersusScene_ChatWheelOrBuilder>(
                  getChatWheel(),
                  getParentForChildren(),
                  isClean());
          chatWheel_ = null;
        }
        return chatWheelBuilder_;
      }

      private skadistats.clarity.wire.common.proto.DotaCommonMessages.VersusScene_PlaybackRate playbackRate_ = skadistats.clarity.wire.common.proto.DotaCommonMessages.VersusScene_PlaybackRate.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.common.proto.DotaCommonMessages.VersusScene_PlaybackRate, skadistats.clarity.wire.common.proto.DotaCommonMessages.VersusScene_PlaybackRate.Builder, skadistats.clarity.wire.common.proto.DotaCommonMessages.VersusScene_PlaybackRateOrBuilder> playbackRateBuilder_;
      /**
       * optional .VersusScene_PlaybackRate playback_rate = 5;
       */
      public boolean hasPlaybackRate() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * optional .VersusScene_PlaybackRate playback_rate = 5;
       */
      public skadistats.clarity.wire.common.proto.DotaCommonMessages.VersusScene_PlaybackRate getPlaybackRate() {
        if (playbackRateBuilder_ == null) {
          return playbackRate_;
        } else {
          return playbackRateBuilder_.getMessage();
        }
      }
      /**
       * optional .VersusScene_PlaybackRate playback_rate = 5;
       */
      public Builder setPlaybackRate(skadistats.clarity.wire.common.proto.DotaCommonMessages.VersusScene_PlaybackRate value) {
        if (playbackRateBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          playbackRate_ = value;
          onChanged();
        } else {
          playbackRateBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       * optional .VersusScene_PlaybackRate playback_rate = 5;
       */
      public Builder setPlaybackRate(
          skadistats.clarity.wire.common.proto.DotaCommonMessages.VersusScene_PlaybackRate.Builder builderForValue) {
        if (playbackRateBuilder_ == null) {
          playbackRate_ = builderForValue.build();
          onChanged();
        } else {
          playbackRateBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       * optional .VersusScene_PlaybackRate playback_rate = 5;
       */
      public Builder mergePlaybackRate(skadistats.clarity.wire.common.proto.DotaCommonMessages.VersusScene_PlaybackRate value) {
        if (playbackRateBuilder_ == null) {
          if (((bitField0_ & 0x00000010) == 0x00000010) &&
              playbackRate_ != skadistats.clarity.wire.common.proto.DotaCommonMessages.VersusScene_PlaybackRate.getDefaultInstance()) {
            playbackRate_ =
              skadistats.clarity.wire.common.proto.DotaCommonMessages.VersusScene_PlaybackRate.newBuilder(playbackRate_).mergeFrom(value).buildPartial();
          } else {
            playbackRate_ = value;
          }
          onChanged();
        } else {
          playbackRateBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       * optional .VersusScene_PlaybackRate playback_rate = 5;
       */
      public Builder clearPlaybackRate() {
        if (playbackRateBuilder_ == null) {
          playbackRate_ = skadistats.clarity.wire.common.proto.DotaCommonMessages.VersusScene_PlaybackRate.getDefaultInstance();
          onChanged();
        } else {
          playbackRateBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }
      /**
       * optional .VersusScene_PlaybackRate playback_rate = 5;
       */
      public skadistats.clarity.wire.common.proto.DotaCommonMessages.VersusScene_PlaybackRate.Builder getPlaybackRateBuilder() {
        bitField0_ |= 0x00000010;
        onChanged();
        return getPlaybackRateFieldBuilder().getBuilder();
      }
      /**
       * optional .VersusScene_PlaybackRate playback_rate = 5;
       */
      public skadistats.clarity.wire.common.proto.DotaCommonMessages.VersusScene_PlaybackRateOrBuilder getPlaybackRateOrBuilder() {
        if (playbackRateBuilder_ != null) {
          return playbackRateBuilder_.getMessageOrBuilder();
        } else {
          return playbackRate_;
        }
      }
      /**
       * optional .VersusScene_PlaybackRate playback_rate = 5;
       */
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.common.proto.DotaCommonMessages.VersusScene_PlaybackRate, skadistats.clarity.wire.common.proto.DotaCommonMessages.VersusScene_PlaybackRate.Builder, skadistats.clarity.wire.common.proto.DotaCommonMessages.VersusScene_PlaybackRateOrBuilder> 
          getPlaybackRateFieldBuilder() {
        if (playbackRateBuilder_ == null) {
          playbackRateBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              skadistats.clarity.wire.common.proto.DotaCommonMessages.VersusScene_PlaybackRate, skadistats.clarity.wire.common.proto.DotaCommonMessages.VersusScene_PlaybackRate.Builder, skadistats.clarity.wire.common.proto.DotaCommonMessages.VersusScene_PlaybackRateOrBuilder>(
                  getPlaybackRate(),
                  getParentForChildren(),
                  isClean());
          playbackRate_ = null;
        }
        return playbackRateBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_VersusScene_PlayerBehavior)
    }

    static {
      defaultInstance = new CDOTAUserMsg_VersusScene_PlayerBehavior(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_VersusScene_PlayerBehavior)
  }

  public interface CDOTAUserMsg_QoP_ArcanaSummaryOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_QoP_ArcanaSummary)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional uint32 ehandle = 1;
     */
    boolean hasEhandle();
    /**
     * optional uint32 ehandle = 1;
     */
    int getEhandle();

    /**
     * optional uint32 arcana_level = 2;
     */
    boolean hasArcanaLevel();
    /**
     * optional uint32 arcana_level = 2;
     */
    int getArcanaLevel();

    /**
     * optional uint32 players_hit = 3;
     */
    boolean hasPlayersHit();
    /**
     * optional uint32 players_hit = 3;
     */
    int getPlayersHit();

    /**
     * optional uint32 players_killed = 4;
     */
    boolean hasPlayersKilled();
    /**
     * optional uint32 players_killed = 4;
     */
    int getPlayersKilled();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_QoP_ArcanaSummary}
   */
  public static final class CDOTAUserMsg_QoP_ArcanaSummary extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_QoP_ArcanaSummary)
      CDOTAUserMsg_QoP_ArcanaSummaryOrBuilder {
    // Use CDOTAUserMsg_QoP_ArcanaSummary.newBuilder() to construct.
    private CDOTAUserMsg_QoP_ArcanaSummary(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_QoP_ArcanaSummary(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_QoP_ArcanaSummary defaultInstance;
    public static CDOTAUserMsg_QoP_ArcanaSummary getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_QoP_ArcanaSummary getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_QoP_ArcanaSummary(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              ehandle_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              arcanaLevel_ = input.readUInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              playersHit_ = input.readUInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              playersKilled_ = input.readUInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_QoP_ArcanaSummary_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_QoP_ArcanaSummary_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_QoP_ArcanaSummary.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_QoP_ArcanaSummary.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_QoP_ArcanaSummary parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_QoP_ArcanaSummary(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int EHANDLE_FIELD_NUMBER = 1;
    private int ehandle_;
    /**
     * optional uint32 ehandle = 1;
     */
    public boolean hasEhandle() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional uint32 ehandle = 1;
     */
    public int getEhandle() {
      return ehandle_;
    }

    public static final int ARCANA_LEVEL_FIELD_NUMBER = 2;
    private int arcanaLevel_;
    /**
     * optional uint32 arcana_level = 2;
     */
    public boolean hasArcanaLevel() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional uint32 arcana_level = 2;
     */
    public int getArcanaLevel() {
      return arcanaLevel_;
    }

    public static final int PLAYERS_HIT_FIELD_NUMBER = 3;
    private int playersHit_;
    /**
     * optional uint32 players_hit = 3;
     */
    public boolean hasPlayersHit() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional uint32 players_hit = 3;
     */
    public int getPlayersHit() {
      return playersHit_;
    }

    public static final int PLAYERS_KILLED_FIELD_NUMBER = 4;
    private int playersKilled_;
    /**
     * optional uint32 players_killed = 4;
     */
    public boolean hasPlayersKilled() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional uint32 players_killed = 4;
     */
    public int getPlayersKilled() {
      return playersKilled_;
    }

    private void initFields() {
      ehandle_ = 0;
      arcanaLevel_ = 0;
      playersHit_ = 0;
      playersKilled_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, ehandle_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, arcanaLevel_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeUInt32(3, playersHit_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeUInt32(4, playersKilled_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, ehandle_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, arcanaLevel_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, playersHit_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(4, playersKilled_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_QoP_ArcanaSummary parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_QoP_ArcanaSummary parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_QoP_ArcanaSummary parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_QoP_ArcanaSummary parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_QoP_ArcanaSummary parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_QoP_ArcanaSummary parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_QoP_ArcanaSummary parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_QoP_ArcanaSummary parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_QoP_ArcanaSummary parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_QoP_ArcanaSummary parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_QoP_ArcanaSummary prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_QoP_ArcanaSummary}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_QoP_ArcanaSummary)
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_QoP_ArcanaSummaryOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_QoP_ArcanaSummary_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_QoP_ArcanaSummary_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_QoP_ArcanaSummary.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_QoP_ArcanaSummary.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_QoP_ArcanaSummary.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        ehandle_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        arcanaLevel_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        playersHit_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        playersKilled_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_QoP_ArcanaSummary_descriptor;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_QoP_ArcanaSummary getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_QoP_ArcanaSummary.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_QoP_ArcanaSummary build() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_QoP_ArcanaSummary result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_QoP_ArcanaSummary buildPartial() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_QoP_ArcanaSummary result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_QoP_ArcanaSummary(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.ehandle_ = ehandle_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.arcanaLevel_ = arcanaLevel_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.playersHit_ = playersHit_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.playersKilled_ = playersKilled_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_QoP_ArcanaSummary) {
          return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_QoP_ArcanaSummary)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_QoP_ArcanaSummary other) {
        if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_QoP_ArcanaSummary.getDefaultInstance()) return this;
        if (other.hasEhandle()) {
          setEhandle(other.getEhandle());
        }
        if (other.hasArcanaLevel()) {
          setArcanaLevel(other.getArcanaLevel());
        }
        if (other.hasPlayersHit()) {
          setPlayersHit(other.getPlayersHit());
        }
        if (other.hasPlayersKilled()) {
          setPlayersKilled(other.getPlayersKilled());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_QoP_ArcanaSummary parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_QoP_ArcanaSummary) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int ehandle_ ;
      /**
       * optional uint32 ehandle = 1;
       */
      public boolean hasEhandle() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional uint32 ehandle = 1;
       */
      public int getEhandle() {
        return ehandle_;
      }
      /**
       * optional uint32 ehandle = 1;
       */
      public Builder setEhandle(int value) {
        bitField0_ |= 0x00000001;
        ehandle_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 ehandle = 1;
       */
      public Builder clearEhandle() {
        bitField0_ = (bitField0_ & ~0x00000001);
        ehandle_ = 0;
        onChanged();
        return this;
      }

      private int arcanaLevel_ ;
      /**
       * optional uint32 arcana_level = 2;
       */
      public boolean hasArcanaLevel() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional uint32 arcana_level = 2;
       */
      public int getArcanaLevel() {
        return arcanaLevel_;
      }
      /**
       * optional uint32 arcana_level = 2;
       */
      public Builder setArcanaLevel(int value) {
        bitField0_ |= 0x00000002;
        arcanaLevel_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 arcana_level = 2;
       */
      public Builder clearArcanaLevel() {
        bitField0_ = (bitField0_ & ~0x00000002);
        arcanaLevel_ = 0;
        onChanged();
        return this;
      }

      private int playersHit_ ;
      /**
       * optional uint32 players_hit = 3;
       */
      public boolean hasPlayersHit() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional uint32 players_hit = 3;
       */
      public int getPlayersHit() {
        return playersHit_;
      }
      /**
       * optional uint32 players_hit = 3;
       */
      public Builder setPlayersHit(int value) {
        bitField0_ |= 0x00000004;
        playersHit_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 players_hit = 3;
       */
      public Builder clearPlayersHit() {
        bitField0_ = (bitField0_ & ~0x00000004);
        playersHit_ = 0;
        onChanged();
        return this;
      }

      private int playersKilled_ ;
      /**
       * optional uint32 players_killed = 4;
       */
      public boolean hasPlayersKilled() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional uint32 players_killed = 4;
       */
      public int getPlayersKilled() {
        return playersKilled_;
      }
      /**
       * optional uint32 players_killed = 4;
       */
      public Builder setPlayersKilled(int value) {
        bitField0_ |= 0x00000008;
        playersKilled_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 players_killed = 4;
       */
      public Builder clearPlayersKilled() {
        bitField0_ = (bitField0_ & ~0x00000008);
        playersKilled_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_QoP_ArcanaSummary)
    }

    static {
      defaultInstance = new CDOTAUserMsg_QoP_ArcanaSummary(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_QoP_ArcanaSummary)
  }

  public interface CDOTAUserMsg_HotPotato_CreatedOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_HotPotato_Created)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional uint32 player_id_1 = 1;
     */
    boolean hasPlayerId1();
    /**
     * optional uint32 player_id_1 = 1;
     */
    int getPlayerId1();

    /**
     * optional uint32 player_id_2 = 2;
     */
    boolean hasPlayerId2();
    /**
     * optional uint32 player_id_2 = 2;
     */
    int getPlayerId2();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_HotPotato_Created}
   */
  public static final class CDOTAUserMsg_HotPotato_Created extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_HotPotato_Created)
      CDOTAUserMsg_HotPotato_CreatedOrBuilder {
    // Use CDOTAUserMsg_HotPotato_Created.newBuilder() to construct.
    private CDOTAUserMsg_HotPotato_Created(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_HotPotato_Created(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_HotPotato_Created defaultInstance;
    public static CDOTAUserMsg_HotPotato_Created getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_HotPotato_Created getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_HotPotato_Created(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              playerId1_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              playerId2_ = input.readUInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_HotPotato_Created_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_HotPotato_Created_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HotPotato_Created.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HotPotato_Created.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_HotPotato_Created parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_HotPotato_Created(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int PLAYER_ID_1_FIELD_NUMBER = 1;
    private int playerId1_;
    /**
     * optional uint32 player_id_1 = 1;
     */
    public boolean hasPlayerId1() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional uint32 player_id_1 = 1;
     */
    public int getPlayerId1() {
      return playerId1_;
    }

    public static final int PLAYER_ID_2_FIELD_NUMBER = 2;
    private int playerId2_;
    /**
     * optional uint32 player_id_2 = 2;
     */
    public boolean hasPlayerId2() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional uint32 player_id_2 = 2;
     */
    public int getPlayerId2() {
      return playerId2_;
    }

    private void initFields() {
      playerId1_ = 0;
      playerId2_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, playerId1_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, playerId2_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, playerId1_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, playerId2_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HotPotato_Created parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HotPotato_Created parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HotPotato_Created parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HotPotato_Created parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HotPotato_Created parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HotPotato_Created parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HotPotato_Created parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HotPotato_Created parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HotPotato_Created parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HotPotato_Created parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HotPotato_Created prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_HotPotato_Created}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_HotPotato_Created)
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HotPotato_CreatedOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_HotPotato_Created_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_HotPotato_Created_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HotPotato_Created.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HotPotato_Created.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HotPotato_Created.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        playerId1_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId2_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_HotPotato_Created_descriptor;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HotPotato_Created getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HotPotato_Created.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HotPotato_Created build() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HotPotato_Created result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HotPotato_Created buildPartial() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HotPotato_Created result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HotPotato_Created(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.playerId1_ = playerId1_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.playerId2_ = playerId2_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HotPotato_Created) {
          return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HotPotato_Created)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HotPotato_Created other) {
        if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HotPotato_Created.getDefaultInstance()) return this;
        if (other.hasPlayerId1()) {
          setPlayerId1(other.getPlayerId1());
        }
        if (other.hasPlayerId2()) {
          setPlayerId2(other.getPlayerId2());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HotPotato_Created parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HotPotato_Created) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int playerId1_ ;
      /**
       * optional uint32 player_id_1 = 1;
       */
      public boolean hasPlayerId1() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional uint32 player_id_1 = 1;
       */
      public int getPlayerId1() {
        return playerId1_;
      }
      /**
       * optional uint32 player_id_1 = 1;
       */
      public Builder setPlayerId1(int value) {
        bitField0_ |= 0x00000001;
        playerId1_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 player_id_1 = 1;
       */
      public Builder clearPlayerId1() {
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId1_ = 0;
        onChanged();
        return this;
      }

      private int playerId2_ ;
      /**
       * optional uint32 player_id_2 = 2;
       */
      public boolean hasPlayerId2() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional uint32 player_id_2 = 2;
       */
      public int getPlayerId2() {
        return playerId2_;
      }
      /**
       * optional uint32 player_id_2 = 2;
       */
      public Builder setPlayerId2(int value) {
        bitField0_ |= 0x00000002;
        playerId2_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 player_id_2 = 2;
       */
      public Builder clearPlayerId2() {
        bitField0_ = (bitField0_ & ~0x00000002);
        playerId2_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_HotPotato_Created)
    }

    static {
      defaultInstance = new CDOTAUserMsg_HotPotato_Created(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_HotPotato_Created)
  }

  public interface CDOTAUserMsg_HotPotato_ExplodedOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_HotPotato_Exploded)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional uint32 player_id = 1;
     */
    boolean hasPlayerId();
    /**
     * optional uint32 player_id = 1;
     */
    int getPlayerId();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_HotPotato_Exploded}
   */
  public static final class CDOTAUserMsg_HotPotato_Exploded extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_HotPotato_Exploded)
      CDOTAUserMsg_HotPotato_ExplodedOrBuilder {
    // Use CDOTAUserMsg_HotPotato_Exploded.newBuilder() to construct.
    private CDOTAUserMsg_HotPotato_Exploded(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_HotPotato_Exploded(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_HotPotato_Exploded defaultInstance;
    public static CDOTAUserMsg_HotPotato_Exploded getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_HotPotato_Exploded getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_HotPotato_Exploded(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              playerId_ = input.readUInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_HotPotato_Exploded_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_HotPotato_Exploded_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HotPotato_Exploded.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HotPotato_Exploded.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_HotPotato_Exploded parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_HotPotato_Exploded(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int PLAYER_ID_FIELD_NUMBER = 1;
    private int playerId_;
    /**
     * optional uint32 player_id = 1;
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional uint32 player_id = 1;
     */
    public int getPlayerId() {
      return playerId_;
    }

    private void initFields() {
      playerId_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, playerId_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, playerId_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HotPotato_Exploded parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HotPotato_Exploded parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HotPotato_Exploded parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HotPotato_Exploded parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HotPotato_Exploded parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HotPotato_Exploded parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HotPotato_Exploded parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HotPotato_Exploded parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HotPotato_Exploded parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HotPotato_Exploded parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HotPotato_Exploded prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_HotPotato_Exploded}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_HotPotato_Exploded)
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HotPotato_ExplodedOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_HotPotato_Exploded_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_HotPotato_Exploded_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HotPotato_Exploded.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HotPotato_Exploded.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HotPotato_Exploded.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_HotPotato_Exploded_descriptor;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HotPotato_Exploded getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HotPotato_Exploded.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HotPotato_Exploded build() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HotPotato_Exploded result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HotPotato_Exploded buildPartial() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HotPotato_Exploded result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HotPotato_Exploded(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.playerId_ = playerId_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HotPotato_Exploded) {
          return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HotPotato_Exploded)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HotPotato_Exploded other) {
        if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HotPotato_Exploded.getDefaultInstance()) return this;
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HotPotato_Exploded parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_HotPotato_Exploded) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int playerId_ ;
      /**
       * optional uint32 player_id = 1;
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional uint32 player_id = 1;
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * optional uint32 player_id = 1;
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000001;
        playerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 player_id = 1;
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_HotPotato_Exploded)
    }

    static {
      defaultInstance = new CDOTAUserMsg_HotPotato_Exploded(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_HotPotato_Exploded)
  }

  public interface CDOTAUserMsg_WK_Arcana_ProgressOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_WK_Arcana_Progress)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional uint32 ehandle = 1;
     */
    boolean hasEhandle();
    /**
     * optional uint32 ehandle = 1;
     */
    int getEhandle();

    /**
     * optional uint32 arcana_level = 2;
     */
    boolean hasArcanaLevel();
    /**
     * optional uint32 arcana_level = 2;
     */
    int getArcanaLevel();

    /**
     * optional uint32 hero_id = 3;
     */
    boolean hasHeroId();
    /**
     * optional uint32 hero_id = 3;
     */
    int getHeroId();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_WK_Arcana_Progress}
   */
  public static final class CDOTAUserMsg_WK_Arcana_Progress extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_WK_Arcana_Progress)
      CDOTAUserMsg_WK_Arcana_ProgressOrBuilder {
    // Use CDOTAUserMsg_WK_Arcana_Progress.newBuilder() to construct.
    private CDOTAUserMsg_WK_Arcana_Progress(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_WK_Arcana_Progress(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_WK_Arcana_Progress defaultInstance;
    public static CDOTAUserMsg_WK_Arcana_Progress getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_WK_Arcana_Progress getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_WK_Arcana_Progress(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              ehandle_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              arcanaLevel_ = input.readUInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              heroId_ = input.readUInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_WK_Arcana_Progress_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_WK_Arcana_Progress_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WK_Arcana_Progress.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WK_Arcana_Progress.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_WK_Arcana_Progress parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_WK_Arcana_Progress(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int EHANDLE_FIELD_NUMBER = 1;
    private int ehandle_;
    /**
     * optional uint32 ehandle = 1;
     */
    public boolean hasEhandle() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional uint32 ehandle = 1;
     */
    public int getEhandle() {
      return ehandle_;
    }

    public static final int ARCANA_LEVEL_FIELD_NUMBER = 2;
    private int arcanaLevel_;
    /**
     * optional uint32 arcana_level = 2;
     */
    public boolean hasArcanaLevel() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional uint32 arcana_level = 2;
     */
    public int getArcanaLevel() {
      return arcanaLevel_;
    }

    public static final int HERO_ID_FIELD_NUMBER = 3;
    private int heroId_;
    /**
     * optional uint32 hero_id = 3;
     */
    public boolean hasHeroId() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional uint32 hero_id = 3;
     */
    public int getHeroId() {
      return heroId_;
    }

    private void initFields() {
      ehandle_ = 0;
      arcanaLevel_ = 0;
      heroId_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, ehandle_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, arcanaLevel_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeUInt32(3, heroId_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, ehandle_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, arcanaLevel_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, heroId_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WK_Arcana_Progress parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WK_Arcana_Progress parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WK_Arcana_Progress parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WK_Arcana_Progress parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WK_Arcana_Progress parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WK_Arcana_Progress parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WK_Arcana_Progress parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WK_Arcana_Progress parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WK_Arcana_Progress parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WK_Arcana_Progress parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WK_Arcana_Progress prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_WK_Arcana_Progress}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_WK_Arcana_Progress)
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WK_Arcana_ProgressOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_WK_Arcana_Progress_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_WK_Arcana_Progress_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WK_Arcana_Progress.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WK_Arcana_Progress.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WK_Arcana_Progress.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        ehandle_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        arcanaLevel_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        heroId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_WK_Arcana_Progress_descriptor;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WK_Arcana_Progress getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WK_Arcana_Progress.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WK_Arcana_Progress build() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WK_Arcana_Progress result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WK_Arcana_Progress buildPartial() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WK_Arcana_Progress result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WK_Arcana_Progress(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.ehandle_ = ehandle_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.arcanaLevel_ = arcanaLevel_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.heroId_ = heroId_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WK_Arcana_Progress) {
          return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WK_Arcana_Progress)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WK_Arcana_Progress other) {
        if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WK_Arcana_Progress.getDefaultInstance()) return this;
        if (other.hasEhandle()) {
          setEhandle(other.getEhandle());
        }
        if (other.hasArcanaLevel()) {
          setArcanaLevel(other.getArcanaLevel());
        }
        if (other.hasHeroId()) {
          setHeroId(other.getHeroId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WK_Arcana_Progress parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WK_Arcana_Progress) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int ehandle_ ;
      /**
       * optional uint32 ehandle = 1;
       */
      public boolean hasEhandle() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional uint32 ehandle = 1;
       */
      public int getEhandle() {
        return ehandle_;
      }
      /**
       * optional uint32 ehandle = 1;
       */
      public Builder setEhandle(int value) {
        bitField0_ |= 0x00000001;
        ehandle_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 ehandle = 1;
       */
      public Builder clearEhandle() {
        bitField0_ = (bitField0_ & ~0x00000001);
        ehandle_ = 0;
        onChanged();
        return this;
      }

      private int arcanaLevel_ ;
      /**
       * optional uint32 arcana_level = 2;
       */
      public boolean hasArcanaLevel() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional uint32 arcana_level = 2;
       */
      public int getArcanaLevel() {
        return arcanaLevel_;
      }
      /**
       * optional uint32 arcana_level = 2;
       */
      public Builder setArcanaLevel(int value) {
        bitField0_ |= 0x00000002;
        arcanaLevel_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 arcana_level = 2;
       */
      public Builder clearArcanaLevel() {
        bitField0_ = (bitField0_ & ~0x00000002);
        arcanaLevel_ = 0;
        onChanged();
        return this;
      }

      private int heroId_ ;
      /**
       * optional uint32 hero_id = 3;
       */
      public boolean hasHeroId() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional uint32 hero_id = 3;
       */
      public int getHeroId() {
        return heroId_;
      }
      /**
       * optional uint32 hero_id = 3;
       */
      public Builder setHeroId(int value) {
        bitField0_ |= 0x00000004;
        heroId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 hero_id = 3;
       */
      public Builder clearHeroId() {
        bitField0_ = (bitField0_ & ~0x00000004);
        heroId_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_WK_Arcana_Progress)
    }

    static {
      defaultInstance = new CDOTAUserMsg_WK_Arcana_Progress(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_WK_Arcana_Progress)
  }

  public interface CDOTAUserMsg_GuildChallenge_ProgressOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_GuildChallenge_Progress)
      com.google.protobuf.MessageOrBuilder {

    /**
     * repeated .CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress player_progress = 1;
     */
    java.util.List 
        getPlayerProgressList();
    /**
     * repeated .CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress player_progress = 1;
     */
    skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress getPlayerProgress(int index);
    /**
     * repeated .CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress player_progress = 1;
     */
    int getPlayerProgressCount();
    /**
     * repeated .CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress player_progress = 1;
     */
    java.util.List 
        getPlayerProgressOrBuilderList();
    /**
     * repeated .CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress player_progress = 1;
     */
    skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgressOrBuilder getPlayerProgressOrBuilder(
        int index);

    /**
     * optional uint32 guild_id = 2;
     */
    boolean hasGuildId();
    /**
     * optional uint32 guild_id = 2;
     */
    int getGuildId();

    /**
     * optional uint32 challenge_instance_id = 3;
     */
    boolean hasChallengeInstanceId();
    /**
     * optional uint32 challenge_instance_id = 3;
     */
    int getChallengeInstanceId();

    /**
     * optional uint32 challenge_parameter = 4;
     */
    boolean hasChallengeParameter();
    /**
     * optional uint32 challenge_parameter = 4;
     */
    int getChallengeParameter();

    /**
     * optional .CDOTAUserMsg_GuildChallenge_Progress.EChallengeType challenge_type = 5 [default = k_EChallengeType_Invalid];
     */
    boolean hasChallengeType();
    /**
     * optional .CDOTAUserMsg_GuildChallenge_Progress.EChallengeType challenge_type = 5 [default = k_EChallengeType_Invalid];
     */
    skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GuildChallenge_Progress.EChallengeType getChallengeType();

    /**
     * optional uint32 challenge_progress_at_start = 7;
     */
    boolean hasChallengeProgressAtStart();
    /**
     * optional uint32 challenge_progress_at_start = 7;
     */
    int getChallengeProgressAtStart();

    /**
     * optional bool complete = 8;
     */
    boolean hasComplete();
    /**
     * optional bool complete = 8;
     */
    boolean getComplete();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_GuildChallenge_Progress}
   */
  public static final class CDOTAUserMsg_GuildChallenge_Progress extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_GuildChallenge_Progress)
      CDOTAUserMsg_GuildChallenge_ProgressOrBuilder {
    // Use CDOTAUserMsg_GuildChallenge_Progress.newBuilder() to construct.
    private CDOTAUserMsg_GuildChallenge_Progress(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_GuildChallenge_Progress(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_GuildChallenge_Progress defaultInstance;
    public static CDOTAUserMsg_GuildChallenge_Progress getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_GuildChallenge_Progress getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_GuildChallenge_Progress(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                playerProgress_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000001;
              }
              playerProgress_.add(input.readMessage(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress.PARSER, extensionRegistry));
              break;
            }
            case 16: {
              bitField0_ |= 0x00000001;
              guildId_ = input.readUInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000002;
              challengeInstanceId_ = input.readUInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000004;
              challengeParameter_ = input.readUInt32();
              break;
            }
            case 40: {
              int rawValue = input.readEnum();
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GuildChallenge_Progress.EChallengeType value = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GuildChallenge_Progress.EChallengeType.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(5, rawValue);
              } else {
                bitField0_ |= 0x00000008;
                challengeType_ = value;
              }
              break;
            }
            case 56: {
              bitField0_ |= 0x00000010;
              challengeProgressAtStart_ = input.readUInt32();
              break;
            }
            case 64: {
              bitField0_ |= 0x00000020;
              complete_ = input.readBool();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
          playerProgress_ = java.util.Collections.unmodifiableList(playerProgress_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_GuildChallenge_Progress_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_GuildChallenge_Progress_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GuildChallenge_Progress.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GuildChallenge_Progress.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_GuildChallenge_Progress parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_GuildChallenge_Progress(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    /**
     * Protobuf enum {@code CDOTAUserMsg_GuildChallenge_Progress.EChallengeType}
     */
    public enum EChallengeType
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * k_EChallengeType_Invalid = 0;
       */
      k_EChallengeType_Invalid(0, 0),
      /**
       * k_EChallengeType_Cooperative = 1;
       */
      k_EChallengeType_Cooperative(1, 1),
      /**
       * k_EChallengeType_Contract = 2;
       */
      k_EChallengeType_Contract(2, 2),
      ;

      /**
       * k_EChallengeType_Invalid = 0;
       */
      public static final int k_EChallengeType_Invalid_VALUE = 0;
      /**
       * k_EChallengeType_Cooperative = 1;
       */
      public static final int k_EChallengeType_Cooperative_VALUE = 1;
      /**
       * k_EChallengeType_Contract = 2;
       */
      public static final int k_EChallengeType_Contract_VALUE = 2;


      public final int getNumber() { return value; }

      public static EChallengeType valueOf(int value) {
        switch (value) {
          case 0: return k_EChallengeType_Invalid;
          case 1: return k_EChallengeType_Cooperative;
          case 2: return k_EChallengeType_Contract;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap
          internalGetValueMap() {
        return internalValueMap;
      }
      private static com.google.protobuf.Internal.EnumLiteMap
          internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap() {
              public EChallengeType findValueByNumber(int number) {
                return EChallengeType.valueOf(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(index);
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GuildChallenge_Progress.getDescriptor().getEnumTypes().get(0);
      }

      private static final EChallengeType[] VALUES = values();

      public static EChallengeType valueOf(
          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
        if (desc.getType() != getDescriptor()) {
          throw new java.lang.IllegalArgumentException(
            "EnumValueDescriptor is not for this type.");
        }
        return VALUES[desc.getIndex()];
      }

      private final int index;
      private final int value;

      private EChallengeType(int index, int value) {
        this.index = index;
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:CDOTAUserMsg_GuildChallenge_Progress.EChallengeType)
    }

    public interface PlayerProgressOrBuilder extends
        // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress)
        com.google.protobuf.MessageOrBuilder {

      /**
       * optional uint32 player_id = 1;
       */
      boolean hasPlayerId();
      /**
       * optional uint32 player_id = 1;
       */
      int getPlayerId();

      /**
       * optional uint32 progress = 6;
       */
      boolean hasProgress();
      /**
       * optional uint32 progress = 6;
       */
      int getProgress();
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress}
     */
    public static final class PlayerProgress extends
        com.google.protobuf.GeneratedMessage implements
        // @@protoc_insertion_point(message_implements:CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress)
        PlayerProgressOrBuilder {
      // Use PlayerProgress.newBuilder() to construct.
      private PlayerProgress(com.google.protobuf.GeneratedMessage.Builder builder) {
        super(builder);
        this.unknownFields = builder.getUnknownFields();
      }
      private PlayerProgress(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

      private static final PlayerProgress defaultInstance;
      public static PlayerProgress getDefaultInstance() {
        return defaultInstance;
      }

      public PlayerProgress getDefaultInstanceForType() {
        return defaultInstance;
      }

      private final com.google.protobuf.UnknownFieldSet unknownFields;
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
          getUnknownFields() {
        return this.unknownFields;
      }
      private PlayerProgress(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        initFields();
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
              case 8: {
                bitField0_ |= 0x00000001;
                playerId_ = input.readUInt32();
                break;
              }
              case 48: {
                bitField0_ |= 0x00000002;
                progress_ = input.readUInt32();
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e.getMessage()).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_GuildChallenge_Progress_PlayerProgress_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_GuildChallenge_Progress_PlayerProgress_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress.Builder.class);
      }

      public static com.google.protobuf.Parser PARSER =
          new com.google.protobuf.AbstractParser() {
        public PlayerProgress parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new PlayerProgress(input, extensionRegistry);
        }
      };

      @java.lang.Override
      public com.google.protobuf.Parser getParserForType() {
        return PARSER;
      }

      private int bitField0_;
      public static final int PLAYER_ID_FIELD_NUMBER = 1;
      private int playerId_;
      /**
       * optional uint32 player_id = 1;
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional uint32 player_id = 1;
       */
      public int getPlayerId() {
        return playerId_;
      }

      public static final int PROGRESS_FIELD_NUMBER = 6;
      private int progress_;
      /**
       * optional uint32 progress = 6;
       */
      public boolean hasProgress() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional uint32 progress = 6;
       */
      public int getProgress() {
        return progress_;
      }

      private void initFields() {
        playerId_ = 0;
        progress_ = 0;
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeUInt32(1, playerId_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeUInt32(6, progress_);
        }
        getUnknownFields().writeTo(output);
      }

      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;

        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeUInt32Size(1, playerId_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeUInt32Size(6, progress_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.Object writeReplace()
          throws java.io.ObjectStreamException {
        return super.writeReplace();
      }

      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }

      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder implements
          // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress)
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgressOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_GuildChallenge_Progress_PlayerProgress_descriptor;
        }

        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_GuildChallenge_Progress_PlayerProgress_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress.Builder.class);
        }

        // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          }
        }
        private static Builder create() {
          return new Builder();
        }

        public Builder clear() {
          super.clear();
          playerId_ = 0;
          bitField0_ = (bitField0_ & ~0x00000001);
          progress_ = 0;
          bitField0_ = (bitField0_ & ~0x00000002);
          return this;
        }

        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }

        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_GuildChallenge_Progress_PlayerProgress_descriptor;
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress getDefaultInstanceForType() {
          return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress.getDefaultInstance();
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress build() {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress buildPartial() {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.playerId_ = playerId_;
          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
            to_bitField0_ |= 0x00000002;
          }
          result.progress_ = progress_;
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }

        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress) {
            return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress other) {
          if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress.getDefaultInstance()) return this;
          if (other.hasPlayerId()) {
            setPlayerId(other.getPlayerId());
          }
          if (other.hasProgress()) {
            setProgress(other.getProgress());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }

        public final boolean isInitialized() {
          return true;
        }

        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress) e.getUnfinishedMessage();
            throw e;
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        private int playerId_ ;
        /**
         * optional uint32 player_id = 1;
         */
        public boolean hasPlayerId() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * optional uint32 player_id = 1;
         */
        public int getPlayerId() {
          return playerId_;
        }
        /**
         * optional uint32 player_id = 1;
         */
        public Builder setPlayerId(int value) {
          bitField0_ |= 0x00000001;
          playerId_ = value;
          onChanged();
          return this;
        }
        /**
         * optional uint32 player_id = 1;
         */
        public Builder clearPlayerId() {
          bitField0_ = (bitField0_ & ~0x00000001);
          playerId_ = 0;
          onChanged();
          return this;
        }

        private int progress_ ;
        /**
         * optional uint32 progress = 6;
         */
        public boolean hasProgress() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        /**
         * optional uint32 progress = 6;
         */
        public int getProgress() {
          return progress_;
        }
        /**
         * optional uint32 progress = 6;
         */
        public Builder setProgress(int value) {
          bitField0_ |= 0x00000002;
          progress_ = value;
          onChanged();
          return this;
        }
        /**
         * optional uint32 progress = 6;
         */
        public Builder clearProgress() {
          bitField0_ = (bitField0_ & ~0x00000002);
          progress_ = 0;
          onChanged();
          return this;
        }

        // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress)
      }

      static {
        defaultInstance = new PlayerProgress(true);
        defaultInstance.initFields();
      }

      // @@protoc_insertion_point(class_scope:CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress)
    }

    private int bitField0_;
    public static final int PLAYER_PROGRESS_FIELD_NUMBER = 1;
    private java.util.List playerProgress_;
    /**
     * repeated .CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress player_progress = 1;
     */
    public java.util.List getPlayerProgressList() {
      return playerProgress_;
    }
    /**
     * repeated .CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress player_progress = 1;
     */
    public java.util.List 
        getPlayerProgressOrBuilderList() {
      return playerProgress_;
    }
    /**
     * repeated .CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress player_progress = 1;
     */
    public int getPlayerProgressCount() {
      return playerProgress_.size();
    }
    /**
     * repeated .CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress player_progress = 1;
     */
    public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress getPlayerProgress(int index) {
      return playerProgress_.get(index);
    }
    /**
     * repeated .CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress player_progress = 1;
     */
    public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgressOrBuilder getPlayerProgressOrBuilder(
        int index) {
      return playerProgress_.get(index);
    }

    public static final int GUILD_ID_FIELD_NUMBER = 2;
    private int guildId_;
    /**
     * optional uint32 guild_id = 2;
     */
    public boolean hasGuildId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional uint32 guild_id = 2;
     */
    public int getGuildId() {
      return guildId_;
    }

    public static final int CHALLENGE_INSTANCE_ID_FIELD_NUMBER = 3;
    private int challengeInstanceId_;
    /**
     * optional uint32 challenge_instance_id = 3;
     */
    public boolean hasChallengeInstanceId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional uint32 challenge_instance_id = 3;
     */
    public int getChallengeInstanceId() {
      return challengeInstanceId_;
    }

    public static final int CHALLENGE_PARAMETER_FIELD_NUMBER = 4;
    private int challengeParameter_;
    /**
     * optional uint32 challenge_parameter = 4;
     */
    public boolean hasChallengeParameter() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional uint32 challenge_parameter = 4;
     */
    public int getChallengeParameter() {
      return challengeParameter_;
    }

    public static final int CHALLENGE_TYPE_FIELD_NUMBER = 5;
    private skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GuildChallenge_Progress.EChallengeType challengeType_;
    /**
     * optional .CDOTAUserMsg_GuildChallenge_Progress.EChallengeType challenge_type = 5 [default = k_EChallengeType_Invalid];
     */
    public boolean hasChallengeType() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional .CDOTAUserMsg_GuildChallenge_Progress.EChallengeType challenge_type = 5 [default = k_EChallengeType_Invalid];
     */
    public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GuildChallenge_Progress.EChallengeType getChallengeType() {
      return challengeType_;
    }

    public static final int CHALLENGE_PROGRESS_AT_START_FIELD_NUMBER = 7;
    private int challengeProgressAtStart_;
    /**
     * optional uint32 challenge_progress_at_start = 7;
     */
    public boolean hasChallengeProgressAtStart() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * optional uint32 challenge_progress_at_start = 7;
     */
    public int getChallengeProgressAtStart() {
      return challengeProgressAtStart_;
    }

    public static final int COMPLETE_FIELD_NUMBER = 8;
    private boolean complete_;
    /**
     * optional bool complete = 8;
     */
    public boolean hasComplete() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     * optional bool complete = 8;
     */
    public boolean getComplete() {
      return complete_;
    }

    private void initFields() {
      playerProgress_ = java.util.Collections.emptyList();
      guildId_ = 0;
      challengeInstanceId_ = 0;
      challengeParameter_ = 0;
      challengeType_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GuildChallenge_Progress.EChallengeType.k_EChallengeType_Invalid;
      challengeProgressAtStart_ = 0;
      complete_ = false;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      for (int i = 0; i < playerProgress_.size(); i++) {
        output.writeMessage(1, playerProgress_.get(i));
      }
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(2, guildId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(3, challengeInstanceId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeUInt32(4, challengeParameter_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeEnum(5, challengeType_.getNumber());
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeUInt32(7, challengeProgressAtStart_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeBool(8, complete_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      for (int i = 0; i < playerProgress_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, playerProgress_.get(i));
      }
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, guildId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, challengeInstanceId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(4, challengeParameter_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(5, challengeType_.getNumber());
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(7, challengeProgressAtStart_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(8, complete_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GuildChallenge_Progress parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GuildChallenge_Progress parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GuildChallenge_Progress parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GuildChallenge_Progress parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GuildChallenge_Progress parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GuildChallenge_Progress parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GuildChallenge_Progress parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GuildChallenge_Progress parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GuildChallenge_Progress parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GuildChallenge_Progress parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GuildChallenge_Progress prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_GuildChallenge_Progress}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_GuildChallenge_Progress)
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GuildChallenge_ProgressOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_GuildChallenge_Progress_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_GuildChallenge_Progress_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GuildChallenge_Progress.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GuildChallenge_Progress.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GuildChallenge_Progress.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getPlayerProgressFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        if (playerProgressBuilder_ == null) {
          playerProgress_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          playerProgressBuilder_.clear();
        }
        guildId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        challengeInstanceId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        challengeParameter_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        challengeType_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GuildChallenge_Progress.EChallengeType.k_EChallengeType_Invalid;
        bitField0_ = (bitField0_ & ~0x00000010);
        challengeProgressAtStart_ = 0;
        bitField0_ = (bitField0_ & ~0x00000020);
        complete_ = false;
        bitField0_ = (bitField0_ & ~0x00000040);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_GuildChallenge_Progress_descriptor;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GuildChallenge_Progress getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GuildChallenge_Progress.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GuildChallenge_Progress build() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GuildChallenge_Progress result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GuildChallenge_Progress buildPartial() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GuildChallenge_Progress result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GuildChallenge_Progress(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (playerProgressBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            playerProgress_ = java.util.Collections.unmodifiableList(playerProgress_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.playerProgress_ = playerProgress_;
        } else {
          result.playerProgress_ = playerProgressBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000001;
        }
        result.guildId_ = guildId_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000002;
        }
        result.challengeInstanceId_ = challengeInstanceId_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000004;
        }
        result.challengeParameter_ = challengeParameter_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000008;
        }
        result.challengeType_ = challengeType_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000010;
        }
        result.challengeProgressAtStart_ = challengeProgressAtStart_;
        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
          to_bitField0_ |= 0x00000020;
        }
        result.complete_ = complete_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GuildChallenge_Progress) {
          return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GuildChallenge_Progress)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GuildChallenge_Progress other) {
        if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GuildChallenge_Progress.getDefaultInstance()) return this;
        if (playerProgressBuilder_ == null) {
          if (!other.playerProgress_.isEmpty()) {
            if (playerProgress_.isEmpty()) {
              playerProgress_ = other.playerProgress_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensurePlayerProgressIsMutable();
              playerProgress_.addAll(other.playerProgress_);
            }
            onChanged();
          }
        } else {
          if (!other.playerProgress_.isEmpty()) {
            if (playerProgressBuilder_.isEmpty()) {
              playerProgressBuilder_.dispose();
              playerProgressBuilder_ = null;
              playerProgress_ = other.playerProgress_;
              bitField0_ = (bitField0_ & ~0x00000001);
              playerProgressBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getPlayerProgressFieldBuilder() : null;
            } else {
              playerProgressBuilder_.addAllMessages(other.playerProgress_);
            }
          }
        }
        if (other.hasGuildId()) {
          setGuildId(other.getGuildId());
        }
        if (other.hasChallengeInstanceId()) {
          setChallengeInstanceId(other.getChallengeInstanceId());
        }
        if (other.hasChallengeParameter()) {
          setChallengeParameter(other.getChallengeParameter());
        }
        if (other.hasChallengeType()) {
          setChallengeType(other.getChallengeType());
        }
        if (other.hasChallengeProgressAtStart()) {
          setChallengeProgressAtStart(other.getChallengeProgressAtStart());
        }
        if (other.hasComplete()) {
          setComplete(other.getComplete());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GuildChallenge_Progress parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GuildChallenge_Progress) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.util.List playerProgress_ =
        java.util.Collections.emptyList();
      private void ensurePlayerProgressIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          playerProgress_ = new java.util.ArrayList(playerProgress_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgressOrBuilder> playerProgressBuilder_;

      /**
       * repeated .CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress player_progress = 1;
       */
      public java.util.List getPlayerProgressList() {
        if (playerProgressBuilder_ == null) {
          return java.util.Collections.unmodifiableList(playerProgress_);
        } else {
          return playerProgressBuilder_.getMessageList();
        }
      }
      /**
       * repeated .CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress player_progress = 1;
       */
      public int getPlayerProgressCount() {
        if (playerProgressBuilder_ == null) {
          return playerProgress_.size();
        } else {
          return playerProgressBuilder_.getCount();
        }
      }
      /**
       * repeated .CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress player_progress = 1;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress getPlayerProgress(int index) {
        if (playerProgressBuilder_ == null) {
          return playerProgress_.get(index);
        } else {
          return playerProgressBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress player_progress = 1;
       */
      public Builder setPlayerProgress(
          int index, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress value) {
        if (playerProgressBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePlayerProgressIsMutable();
          playerProgress_.set(index, value);
          onChanged();
        } else {
          playerProgressBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress player_progress = 1;
       */
      public Builder setPlayerProgress(
          int index, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress.Builder builderForValue) {
        if (playerProgressBuilder_ == null) {
          ensurePlayerProgressIsMutable();
          playerProgress_.set(index, builderForValue.build());
          onChanged();
        } else {
          playerProgressBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress player_progress = 1;
       */
      public Builder addPlayerProgress(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress value) {
        if (playerProgressBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePlayerProgressIsMutable();
          playerProgress_.add(value);
          onChanged();
        } else {
          playerProgressBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress player_progress = 1;
       */
      public Builder addPlayerProgress(
          int index, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress value) {
        if (playerProgressBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePlayerProgressIsMutable();
          playerProgress_.add(index, value);
          onChanged();
        } else {
          playerProgressBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress player_progress = 1;
       */
      public Builder addPlayerProgress(
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress.Builder builderForValue) {
        if (playerProgressBuilder_ == null) {
          ensurePlayerProgressIsMutable();
          playerProgress_.add(builderForValue.build());
          onChanged();
        } else {
          playerProgressBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress player_progress = 1;
       */
      public Builder addPlayerProgress(
          int index, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress.Builder builderForValue) {
        if (playerProgressBuilder_ == null) {
          ensurePlayerProgressIsMutable();
          playerProgress_.add(index, builderForValue.build());
          onChanged();
        } else {
          playerProgressBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress player_progress = 1;
       */
      public Builder addAllPlayerProgress(
          java.lang.Iterable values) {
        if (playerProgressBuilder_ == null) {
          ensurePlayerProgressIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, playerProgress_);
          onChanged();
        } else {
          playerProgressBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress player_progress = 1;
       */
      public Builder clearPlayerProgress() {
        if (playerProgressBuilder_ == null) {
          playerProgress_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          playerProgressBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress player_progress = 1;
       */
      public Builder removePlayerProgress(int index) {
        if (playerProgressBuilder_ == null) {
          ensurePlayerProgressIsMutable();
          playerProgress_.remove(index);
          onChanged();
        } else {
          playerProgressBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress player_progress = 1;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress.Builder getPlayerProgressBuilder(
          int index) {
        return getPlayerProgressFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress player_progress = 1;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgressOrBuilder getPlayerProgressOrBuilder(
          int index) {
        if (playerProgressBuilder_ == null) {
          return playerProgress_.get(index);  } else {
          return playerProgressBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress player_progress = 1;
       */
      public java.util.List 
           getPlayerProgressOrBuilderList() {
        if (playerProgressBuilder_ != null) {
          return playerProgressBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(playerProgress_);
        }
      }
      /**
       * repeated .CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress player_progress = 1;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress.Builder addPlayerProgressBuilder() {
        return getPlayerProgressFieldBuilder().addBuilder(
            skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress.getDefaultInstance());
      }
      /**
       * repeated .CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress player_progress = 1;
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress.Builder addPlayerProgressBuilder(
          int index) {
        return getPlayerProgressFieldBuilder().addBuilder(
            index, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress.getDefaultInstance());
      }
      /**
       * repeated .CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress player_progress = 1;
       */
      public java.util.List 
           getPlayerProgressBuilderList() {
        return getPlayerProgressFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgressOrBuilder> 
          getPlayerProgressFieldBuilder() {
        if (playerProgressBuilder_ == null) {
          playerProgressBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress.Builder, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgressOrBuilder>(
                  playerProgress_,
                  ((bitField0_ & 0x00000001) == 0x00000001),
                  getParentForChildren(),
                  isClean());
          playerProgress_ = null;
        }
        return playerProgressBuilder_;
      }

      private int guildId_ ;
      /**
       * optional uint32 guild_id = 2;
       */
      public boolean hasGuildId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional uint32 guild_id = 2;
       */
      public int getGuildId() {
        return guildId_;
      }
      /**
       * optional uint32 guild_id = 2;
       */
      public Builder setGuildId(int value) {
        bitField0_ |= 0x00000002;
        guildId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 guild_id = 2;
       */
      public Builder clearGuildId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        guildId_ = 0;
        onChanged();
        return this;
      }

      private int challengeInstanceId_ ;
      /**
       * optional uint32 challenge_instance_id = 3;
       */
      public boolean hasChallengeInstanceId() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional uint32 challenge_instance_id = 3;
       */
      public int getChallengeInstanceId() {
        return challengeInstanceId_;
      }
      /**
       * optional uint32 challenge_instance_id = 3;
       */
      public Builder setChallengeInstanceId(int value) {
        bitField0_ |= 0x00000004;
        challengeInstanceId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 challenge_instance_id = 3;
       */
      public Builder clearChallengeInstanceId() {
        bitField0_ = (bitField0_ & ~0x00000004);
        challengeInstanceId_ = 0;
        onChanged();
        return this;
      }

      private int challengeParameter_ ;
      /**
       * optional uint32 challenge_parameter = 4;
       */
      public boolean hasChallengeParameter() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional uint32 challenge_parameter = 4;
       */
      public int getChallengeParameter() {
        return challengeParameter_;
      }
      /**
       * optional uint32 challenge_parameter = 4;
       */
      public Builder setChallengeParameter(int value) {
        bitField0_ |= 0x00000008;
        challengeParameter_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 challenge_parameter = 4;
       */
      public Builder clearChallengeParameter() {
        bitField0_ = (bitField0_ & ~0x00000008);
        challengeParameter_ = 0;
        onChanged();
        return this;
      }

      private skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GuildChallenge_Progress.EChallengeType challengeType_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GuildChallenge_Progress.EChallengeType.k_EChallengeType_Invalid;
      /**
       * optional .CDOTAUserMsg_GuildChallenge_Progress.EChallengeType challenge_type = 5 [default = k_EChallengeType_Invalid];
       */
      public boolean hasChallengeType() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * optional .CDOTAUserMsg_GuildChallenge_Progress.EChallengeType challenge_type = 5 [default = k_EChallengeType_Invalid];
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GuildChallenge_Progress.EChallengeType getChallengeType() {
        return challengeType_;
      }
      /**
       * optional .CDOTAUserMsg_GuildChallenge_Progress.EChallengeType challenge_type = 5 [default = k_EChallengeType_Invalid];
       */
      public Builder setChallengeType(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GuildChallenge_Progress.EChallengeType value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000010;
        challengeType_ = value;
        onChanged();
        return this;
      }
      /**
       * optional .CDOTAUserMsg_GuildChallenge_Progress.EChallengeType challenge_type = 5 [default = k_EChallengeType_Invalid];
       */
      public Builder clearChallengeType() {
        bitField0_ = (bitField0_ & ~0x00000010);
        challengeType_ = skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_GuildChallenge_Progress.EChallengeType.k_EChallengeType_Invalid;
        onChanged();
        return this;
      }

      private int challengeProgressAtStart_ ;
      /**
       * optional uint32 challenge_progress_at_start = 7;
       */
      public boolean hasChallengeProgressAtStart() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * optional uint32 challenge_progress_at_start = 7;
       */
      public int getChallengeProgressAtStart() {
        return challengeProgressAtStart_;
      }
      /**
       * optional uint32 challenge_progress_at_start = 7;
       */
      public Builder setChallengeProgressAtStart(int value) {
        bitField0_ |= 0x00000020;
        challengeProgressAtStart_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 challenge_progress_at_start = 7;
       */
      public Builder clearChallengeProgressAtStart() {
        bitField0_ = (bitField0_ & ~0x00000020);
        challengeProgressAtStart_ = 0;
        onChanged();
        return this;
      }

      private boolean complete_ ;
      /**
       * optional bool complete = 8;
       */
      public boolean hasComplete() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      /**
       * optional bool complete = 8;
       */
      public boolean getComplete() {
        return complete_;
      }
      /**
       * optional bool complete = 8;
       */
      public Builder setComplete(boolean value) {
        bitField0_ |= 0x00000040;
        complete_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool complete = 8;
       */
      public Builder clearComplete() {
        bitField0_ = (bitField0_ & ~0x00000040);
        complete_ = false;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_GuildChallenge_Progress)
    }

    static {
      defaultInstance = new CDOTAUserMsg_GuildChallenge_Progress(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_GuildChallenge_Progress)
  }

  public interface CDOTAUserMsg_WRArcanaProgressOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_WRArcanaProgress)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional uint32 ehandle = 1;
     */
    boolean hasEhandle();
    /**
     * optional uint32 ehandle = 1;
     */
    int getEhandle();

    /**
     * optional uint32 target_ehandle = 2;
     */
    boolean hasTargetEhandle();
    /**
     * optional uint32 target_ehandle = 2;
     */
    int getTargetEhandle();

    /**
     * optional uint32 arrows_landed = 3;
     */
    boolean hasArrowsLanded();
    /**
     * optional uint32 arrows_landed = 3;
     */
    int getArrowsLanded();

    /**
     * optional uint32 damage_dealt = 4;
     */
    boolean hasDamageDealt();
    /**
     * optional uint32 damage_dealt = 4;
     */
    int getDamageDealt();

    /**
     * optional uint32 target_hp = 5;
     */
    boolean hasTargetHp();
    /**
     * optional uint32 target_hp = 5;
     */
    int getTargetHp();

    /**
     * optional uint32 target_max_hp = 6;
     */
    boolean hasTargetMaxHp();
    /**
     * optional uint32 target_max_hp = 6;
     */
    int getTargetMaxHp();

    /**
     * optional uint32 arcana_level = 7;
     */
    boolean hasArcanaLevel();
    /**
     * optional uint32 arcana_level = 7;
     */
    int getArcanaLevel();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_WRArcanaProgress}
   */
  public static final class CDOTAUserMsg_WRArcanaProgress extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_WRArcanaProgress)
      CDOTAUserMsg_WRArcanaProgressOrBuilder {
    // Use CDOTAUserMsg_WRArcanaProgress.newBuilder() to construct.
    private CDOTAUserMsg_WRArcanaProgress(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_WRArcanaProgress(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_WRArcanaProgress defaultInstance;
    public static CDOTAUserMsg_WRArcanaProgress getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_WRArcanaProgress getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_WRArcanaProgress(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              ehandle_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              targetEhandle_ = input.readUInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              arrowsLanded_ = input.readUInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              damageDealt_ = input.readUInt32();
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              targetHp_ = input.readUInt32();
              break;
            }
            case 48: {
              bitField0_ |= 0x00000020;
              targetMaxHp_ = input.readUInt32();
              break;
            }
            case 56: {
              bitField0_ |= 0x00000040;
              arcanaLevel_ = input.readUInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_WRArcanaProgress_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_WRArcanaProgress_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WRArcanaProgress.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WRArcanaProgress.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_WRArcanaProgress parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_WRArcanaProgress(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int EHANDLE_FIELD_NUMBER = 1;
    private int ehandle_;
    /**
     * optional uint32 ehandle = 1;
     */
    public boolean hasEhandle() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional uint32 ehandle = 1;
     */
    public int getEhandle() {
      return ehandle_;
    }

    public static final int TARGET_EHANDLE_FIELD_NUMBER = 2;
    private int targetEhandle_;
    /**
     * optional uint32 target_ehandle = 2;
     */
    public boolean hasTargetEhandle() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional uint32 target_ehandle = 2;
     */
    public int getTargetEhandle() {
      return targetEhandle_;
    }

    public static final int ARROWS_LANDED_FIELD_NUMBER = 3;
    private int arrowsLanded_;
    /**
     * optional uint32 arrows_landed = 3;
     */
    public boolean hasArrowsLanded() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional uint32 arrows_landed = 3;
     */
    public int getArrowsLanded() {
      return arrowsLanded_;
    }

    public static final int DAMAGE_DEALT_FIELD_NUMBER = 4;
    private int damageDealt_;
    /**
     * optional uint32 damage_dealt = 4;
     */
    public boolean hasDamageDealt() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional uint32 damage_dealt = 4;
     */
    public int getDamageDealt() {
      return damageDealt_;
    }

    public static final int TARGET_HP_FIELD_NUMBER = 5;
    private int targetHp_;
    /**
     * optional uint32 target_hp = 5;
     */
    public boolean hasTargetHp() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * optional uint32 target_hp = 5;
     */
    public int getTargetHp() {
      return targetHp_;
    }

    public static final int TARGET_MAX_HP_FIELD_NUMBER = 6;
    private int targetMaxHp_;
    /**
     * optional uint32 target_max_hp = 6;
     */
    public boolean hasTargetMaxHp() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     * optional uint32 target_max_hp = 6;
     */
    public int getTargetMaxHp() {
      return targetMaxHp_;
    }

    public static final int ARCANA_LEVEL_FIELD_NUMBER = 7;
    private int arcanaLevel_;
    /**
     * optional uint32 arcana_level = 7;
     */
    public boolean hasArcanaLevel() {
      return ((bitField0_ & 0x00000040) == 0x00000040);
    }
    /**
     * optional uint32 arcana_level = 7;
     */
    public int getArcanaLevel() {
      return arcanaLevel_;
    }

    private void initFields() {
      ehandle_ = 0;
      targetEhandle_ = 0;
      arrowsLanded_ = 0;
      damageDealt_ = 0;
      targetHp_ = 0;
      targetMaxHp_ = 0;
      arcanaLevel_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, ehandle_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, targetEhandle_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeUInt32(3, arrowsLanded_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeUInt32(4, damageDealt_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeUInt32(5, targetHp_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeUInt32(6, targetMaxHp_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        output.writeUInt32(7, arcanaLevel_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, ehandle_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, targetEhandle_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, arrowsLanded_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(4, damageDealt_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(5, targetHp_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(6, targetMaxHp_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(7, arcanaLevel_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WRArcanaProgress parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WRArcanaProgress parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WRArcanaProgress parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WRArcanaProgress parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WRArcanaProgress parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WRArcanaProgress parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WRArcanaProgress parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WRArcanaProgress parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WRArcanaProgress parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WRArcanaProgress parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WRArcanaProgress prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_WRArcanaProgress}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_WRArcanaProgress)
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WRArcanaProgressOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_WRArcanaProgress_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_WRArcanaProgress_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WRArcanaProgress.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WRArcanaProgress.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WRArcanaProgress.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        ehandle_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        targetEhandle_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        arrowsLanded_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        damageDealt_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        targetHp_ = 0;
        bitField0_ = (bitField0_ & ~0x00000010);
        targetMaxHp_ = 0;
        bitField0_ = (bitField0_ & ~0x00000020);
        arcanaLevel_ = 0;
        bitField0_ = (bitField0_ & ~0x00000040);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_WRArcanaProgress_descriptor;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WRArcanaProgress getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WRArcanaProgress.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WRArcanaProgress build() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WRArcanaProgress result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WRArcanaProgress buildPartial() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WRArcanaProgress result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WRArcanaProgress(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.ehandle_ = ehandle_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.targetEhandle_ = targetEhandle_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.arrowsLanded_ = arrowsLanded_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.damageDealt_ = damageDealt_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.targetHp_ = targetHp_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        result.targetMaxHp_ = targetMaxHp_;
        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
          to_bitField0_ |= 0x00000040;
        }
        result.arcanaLevel_ = arcanaLevel_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WRArcanaProgress) {
          return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WRArcanaProgress)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WRArcanaProgress other) {
        if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WRArcanaProgress.getDefaultInstance()) return this;
        if (other.hasEhandle()) {
          setEhandle(other.getEhandle());
        }
        if (other.hasTargetEhandle()) {
          setTargetEhandle(other.getTargetEhandle());
        }
        if (other.hasArrowsLanded()) {
          setArrowsLanded(other.getArrowsLanded());
        }
        if (other.hasDamageDealt()) {
          setDamageDealt(other.getDamageDealt());
        }
        if (other.hasTargetHp()) {
          setTargetHp(other.getTargetHp());
        }
        if (other.hasTargetMaxHp()) {
          setTargetMaxHp(other.getTargetMaxHp());
        }
        if (other.hasArcanaLevel()) {
          setArcanaLevel(other.getArcanaLevel());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WRArcanaProgress parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WRArcanaProgress) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int ehandle_ ;
      /**
       * optional uint32 ehandle = 1;
       */
      public boolean hasEhandle() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional uint32 ehandle = 1;
       */
      public int getEhandle() {
        return ehandle_;
      }
      /**
       * optional uint32 ehandle = 1;
       */
      public Builder setEhandle(int value) {
        bitField0_ |= 0x00000001;
        ehandle_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 ehandle = 1;
       */
      public Builder clearEhandle() {
        bitField0_ = (bitField0_ & ~0x00000001);
        ehandle_ = 0;
        onChanged();
        return this;
      }

      private int targetEhandle_ ;
      /**
       * optional uint32 target_ehandle = 2;
       */
      public boolean hasTargetEhandle() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional uint32 target_ehandle = 2;
       */
      public int getTargetEhandle() {
        return targetEhandle_;
      }
      /**
       * optional uint32 target_ehandle = 2;
       */
      public Builder setTargetEhandle(int value) {
        bitField0_ |= 0x00000002;
        targetEhandle_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 target_ehandle = 2;
       */
      public Builder clearTargetEhandle() {
        bitField0_ = (bitField0_ & ~0x00000002);
        targetEhandle_ = 0;
        onChanged();
        return this;
      }

      private int arrowsLanded_ ;
      /**
       * optional uint32 arrows_landed = 3;
       */
      public boolean hasArrowsLanded() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional uint32 arrows_landed = 3;
       */
      public int getArrowsLanded() {
        return arrowsLanded_;
      }
      /**
       * optional uint32 arrows_landed = 3;
       */
      public Builder setArrowsLanded(int value) {
        bitField0_ |= 0x00000004;
        arrowsLanded_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 arrows_landed = 3;
       */
      public Builder clearArrowsLanded() {
        bitField0_ = (bitField0_ & ~0x00000004);
        arrowsLanded_ = 0;
        onChanged();
        return this;
      }

      private int damageDealt_ ;
      /**
       * optional uint32 damage_dealt = 4;
       */
      public boolean hasDamageDealt() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional uint32 damage_dealt = 4;
       */
      public int getDamageDealt() {
        return damageDealt_;
      }
      /**
       * optional uint32 damage_dealt = 4;
       */
      public Builder setDamageDealt(int value) {
        bitField0_ |= 0x00000008;
        damageDealt_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 damage_dealt = 4;
       */
      public Builder clearDamageDealt() {
        bitField0_ = (bitField0_ & ~0x00000008);
        damageDealt_ = 0;
        onChanged();
        return this;
      }

      private int targetHp_ ;
      /**
       * optional uint32 target_hp = 5;
       */
      public boolean hasTargetHp() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * optional uint32 target_hp = 5;
       */
      public int getTargetHp() {
        return targetHp_;
      }
      /**
       * optional uint32 target_hp = 5;
       */
      public Builder setTargetHp(int value) {
        bitField0_ |= 0x00000010;
        targetHp_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 target_hp = 5;
       */
      public Builder clearTargetHp() {
        bitField0_ = (bitField0_ & ~0x00000010);
        targetHp_ = 0;
        onChanged();
        return this;
      }

      private int targetMaxHp_ ;
      /**
       * optional uint32 target_max_hp = 6;
       */
      public boolean hasTargetMaxHp() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * optional uint32 target_max_hp = 6;
       */
      public int getTargetMaxHp() {
        return targetMaxHp_;
      }
      /**
       * optional uint32 target_max_hp = 6;
       */
      public Builder setTargetMaxHp(int value) {
        bitField0_ |= 0x00000020;
        targetMaxHp_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 target_max_hp = 6;
       */
      public Builder clearTargetMaxHp() {
        bitField0_ = (bitField0_ & ~0x00000020);
        targetMaxHp_ = 0;
        onChanged();
        return this;
      }

      private int arcanaLevel_ ;
      /**
       * optional uint32 arcana_level = 7;
       */
      public boolean hasArcanaLevel() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      /**
       * optional uint32 arcana_level = 7;
       */
      public int getArcanaLevel() {
        return arcanaLevel_;
      }
      /**
       * optional uint32 arcana_level = 7;
       */
      public Builder setArcanaLevel(int value) {
        bitField0_ |= 0x00000040;
        arcanaLevel_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 arcana_level = 7;
       */
      public Builder clearArcanaLevel() {
        bitField0_ = (bitField0_ & ~0x00000040);
        arcanaLevel_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_WRArcanaProgress)
    }

    static {
      defaultInstance = new CDOTAUserMsg_WRArcanaProgress(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_WRArcanaProgress)
  }

  public interface CDOTAUserMsg_WRArcanaSummaryOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_WRArcanaSummary)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional uint32 ehandle = 1;
     */
    boolean hasEhandle();
    /**
     * optional uint32 ehandle = 1;
     */
    int getEhandle();

    /**
     * optional uint32 target_ehandle = 2;
     */
    boolean hasTargetEhandle();
    /**
     * optional uint32 target_ehandle = 2;
     */
    int getTargetEhandle();

    /**
     * optional uint32 arrows_landed = 3;
     */
    boolean hasArrowsLanded();
    /**
     * optional uint32 arrows_landed = 3;
     */
    int getArrowsLanded();

    /**
     * optional uint32 damage_dealt = 4;
     */
    boolean hasDamageDealt();
    /**
     * optional uint32 damage_dealt = 4;
     */
    int getDamageDealt();

    /**
     * optional uint32 target_hp = 5;
     */
    boolean hasTargetHp();
    /**
     * optional uint32 target_hp = 5;
     */
    int getTargetHp();

    /**
     * optional uint32 target_max_hp = 6;
     */
    boolean hasTargetMaxHp();
    /**
     * optional uint32 target_max_hp = 6;
     */
    int getTargetMaxHp();

    /**
     * optional uint32 arcana_level = 7;
     */
    boolean hasArcanaLevel();
    /**
     * optional uint32 arcana_level = 7;
     */
    int getArcanaLevel();

    /**
     * optional bool success = 8;
     */
    boolean hasSuccess();
    /**
     * optional bool success = 8;
     */
    boolean getSuccess();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_WRArcanaSummary}
   */
  public static final class CDOTAUserMsg_WRArcanaSummary extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_WRArcanaSummary)
      CDOTAUserMsg_WRArcanaSummaryOrBuilder {
    // Use CDOTAUserMsg_WRArcanaSummary.newBuilder() to construct.
    private CDOTAUserMsg_WRArcanaSummary(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_WRArcanaSummary(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_WRArcanaSummary defaultInstance;
    public static CDOTAUserMsg_WRArcanaSummary getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_WRArcanaSummary getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_WRArcanaSummary(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              ehandle_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              targetEhandle_ = input.readUInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              arrowsLanded_ = input.readUInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              damageDealt_ = input.readUInt32();
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              targetHp_ = input.readUInt32();
              break;
            }
            case 48: {
              bitField0_ |= 0x00000020;
              targetMaxHp_ = input.readUInt32();
              break;
            }
            case 56: {
              bitField0_ |= 0x00000040;
              arcanaLevel_ = input.readUInt32();
              break;
            }
            case 64: {
              bitField0_ |= 0x00000080;
              success_ = input.readBool();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_WRArcanaSummary_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_WRArcanaSummary_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WRArcanaSummary.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WRArcanaSummary.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_WRArcanaSummary parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_WRArcanaSummary(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int EHANDLE_FIELD_NUMBER = 1;
    private int ehandle_;
    /**
     * optional uint32 ehandle = 1;
     */
    public boolean hasEhandle() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional uint32 ehandle = 1;
     */
    public int getEhandle() {
      return ehandle_;
    }

    public static final int TARGET_EHANDLE_FIELD_NUMBER = 2;
    private int targetEhandle_;
    /**
     * optional uint32 target_ehandle = 2;
     */
    public boolean hasTargetEhandle() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional uint32 target_ehandle = 2;
     */
    public int getTargetEhandle() {
      return targetEhandle_;
    }

    public static final int ARROWS_LANDED_FIELD_NUMBER = 3;
    private int arrowsLanded_;
    /**
     * optional uint32 arrows_landed = 3;
     */
    public boolean hasArrowsLanded() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional uint32 arrows_landed = 3;
     */
    public int getArrowsLanded() {
      return arrowsLanded_;
    }

    public static final int DAMAGE_DEALT_FIELD_NUMBER = 4;
    private int damageDealt_;
    /**
     * optional uint32 damage_dealt = 4;
     */
    public boolean hasDamageDealt() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional uint32 damage_dealt = 4;
     */
    public int getDamageDealt() {
      return damageDealt_;
    }

    public static final int TARGET_HP_FIELD_NUMBER = 5;
    private int targetHp_;
    /**
     * optional uint32 target_hp = 5;
     */
    public boolean hasTargetHp() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * optional uint32 target_hp = 5;
     */
    public int getTargetHp() {
      return targetHp_;
    }

    public static final int TARGET_MAX_HP_FIELD_NUMBER = 6;
    private int targetMaxHp_;
    /**
     * optional uint32 target_max_hp = 6;
     */
    public boolean hasTargetMaxHp() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     * optional uint32 target_max_hp = 6;
     */
    public int getTargetMaxHp() {
      return targetMaxHp_;
    }

    public static final int ARCANA_LEVEL_FIELD_NUMBER = 7;
    private int arcanaLevel_;
    /**
     * optional uint32 arcana_level = 7;
     */
    public boolean hasArcanaLevel() {
      return ((bitField0_ & 0x00000040) == 0x00000040);
    }
    /**
     * optional uint32 arcana_level = 7;
     */
    public int getArcanaLevel() {
      return arcanaLevel_;
    }

    public static final int SUCCESS_FIELD_NUMBER = 8;
    private boolean success_;
    /**
     * optional bool success = 8;
     */
    public boolean hasSuccess() {
      return ((bitField0_ & 0x00000080) == 0x00000080);
    }
    /**
     * optional bool success = 8;
     */
    public boolean getSuccess() {
      return success_;
    }

    private void initFields() {
      ehandle_ = 0;
      targetEhandle_ = 0;
      arrowsLanded_ = 0;
      damageDealt_ = 0;
      targetHp_ = 0;
      targetMaxHp_ = 0;
      arcanaLevel_ = 0;
      success_ = false;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, ehandle_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, targetEhandle_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeUInt32(3, arrowsLanded_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeUInt32(4, damageDealt_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeUInt32(5, targetHp_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeUInt32(6, targetMaxHp_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        output.writeUInt32(7, arcanaLevel_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        output.writeBool(8, success_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, ehandle_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, targetEhandle_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, arrowsLanded_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(4, damageDealt_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(5, targetHp_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(6, targetMaxHp_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(7, arcanaLevel_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(8, success_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WRArcanaSummary parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WRArcanaSummary parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WRArcanaSummary parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WRArcanaSummary parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WRArcanaSummary parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WRArcanaSummary parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WRArcanaSummary parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WRArcanaSummary parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WRArcanaSummary parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WRArcanaSummary parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WRArcanaSummary prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_WRArcanaSummary}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_WRArcanaSummary)
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WRArcanaSummaryOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_WRArcanaSummary_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_WRArcanaSummary_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WRArcanaSummary.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WRArcanaSummary.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WRArcanaSummary.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        ehandle_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        targetEhandle_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        arrowsLanded_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        damageDealt_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        targetHp_ = 0;
        bitField0_ = (bitField0_ & ~0x00000010);
        targetMaxHp_ = 0;
        bitField0_ = (bitField0_ & ~0x00000020);
        arcanaLevel_ = 0;
        bitField0_ = (bitField0_ & ~0x00000040);
        success_ = false;
        bitField0_ = (bitField0_ & ~0x00000080);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_WRArcanaSummary_descriptor;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WRArcanaSummary getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WRArcanaSummary.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WRArcanaSummary build() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WRArcanaSummary result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WRArcanaSummary buildPartial() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WRArcanaSummary result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WRArcanaSummary(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.ehandle_ = ehandle_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.targetEhandle_ = targetEhandle_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.arrowsLanded_ = arrowsLanded_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.damageDealt_ = damageDealt_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.targetHp_ = targetHp_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        result.targetMaxHp_ = targetMaxHp_;
        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
          to_bitField0_ |= 0x00000040;
        }
        result.arcanaLevel_ = arcanaLevel_;
        if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
          to_bitField0_ |= 0x00000080;
        }
        result.success_ = success_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WRArcanaSummary) {
          return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WRArcanaSummary)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WRArcanaSummary other) {
        if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WRArcanaSummary.getDefaultInstance()) return this;
        if (other.hasEhandle()) {
          setEhandle(other.getEhandle());
        }
        if (other.hasTargetEhandle()) {
          setTargetEhandle(other.getTargetEhandle());
        }
        if (other.hasArrowsLanded()) {
          setArrowsLanded(other.getArrowsLanded());
        }
        if (other.hasDamageDealt()) {
          setDamageDealt(other.getDamageDealt());
        }
        if (other.hasTargetHp()) {
          setTargetHp(other.getTargetHp());
        }
        if (other.hasTargetMaxHp()) {
          setTargetMaxHp(other.getTargetMaxHp());
        }
        if (other.hasArcanaLevel()) {
          setArcanaLevel(other.getArcanaLevel());
        }
        if (other.hasSuccess()) {
          setSuccess(other.getSuccess());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WRArcanaSummary parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_WRArcanaSummary) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int ehandle_ ;
      /**
       * optional uint32 ehandle = 1;
       */
      public boolean hasEhandle() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional uint32 ehandle = 1;
       */
      public int getEhandle() {
        return ehandle_;
      }
      /**
       * optional uint32 ehandle = 1;
       */
      public Builder setEhandle(int value) {
        bitField0_ |= 0x00000001;
        ehandle_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 ehandle = 1;
       */
      public Builder clearEhandle() {
        bitField0_ = (bitField0_ & ~0x00000001);
        ehandle_ = 0;
        onChanged();
        return this;
      }

      private int targetEhandle_ ;
      /**
       * optional uint32 target_ehandle = 2;
       */
      public boolean hasTargetEhandle() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional uint32 target_ehandle = 2;
       */
      public int getTargetEhandle() {
        return targetEhandle_;
      }
      /**
       * optional uint32 target_ehandle = 2;
       */
      public Builder setTargetEhandle(int value) {
        bitField0_ |= 0x00000002;
        targetEhandle_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 target_ehandle = 2;
       */
      public Builder clearTargetEhandle() {
        bitField0_ = (bitField0_ & ~0x00000002);
        targetEhandle_ = 0;
        onChanged();
        return this;
      }

      private int arrowsLanded_ ;
      /**
       * optional uint32 arrows_landed = 3;
       */
      public boolean hasArrowsLanded() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional uint32 arrows_landed = 3;
       */
      public int getArrowsLanded() {
        return arrowsLanded_;
      }
      /**
       * optional uint32 arrows_landed = 3;
       */
      public Builder setArrowsLanded(int value) {
        bitField0_ |= 0x00000004;
        arrowsLanded_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 arrows_landed = 3;
       */
      public Builder clearArrowsLanded() {
        bitField0_ = (bitField0_ & ~0x00000004);
        arrowsLanded_ = 0;
        onChanged();
        return this;
      }

      private int damageDealt_ ;
      /**
       * optional uint32 damage_dealt = 4;
       */
      public boolean hasDamageDealt() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional uint32 damage_dealt = 4;
       */
      public int getDamageDealt() {
        return damageDealt_;
      }
      /**
       * optional uint32 damage_dealt = 4;
       */
      public Builder setDamageDealt(int value) {
        bitField0_ |= 0x00000008;
        damageDealt_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 damage_dealt = 4;
       */
      public Builder clearDamageDealt() {
        bitField0_ = (bitField0_ & ~0x00000008);
        damageDealt_ = 0;
        onChanged();
        return this;
      }

      private int targetHp_ ;
      /**
       * optional uint32 target_hp = 5;
       */
      public boolean hasTargetHp() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * optional uint32 target_hp = 5;
       */
      public int getTargetHp() {
        return targetHp_;
      }
      /**
       * optional uint32 target_hp = 5;
       */
      public Builder setTargetHp(int value) {
        bitField0_ |= 0x00000010;
        targetHp_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 target_hp = 5;
       */
      public Builder clearTargetHp() {
        bitField0_ = (bitField0_ & ~0x00000010);
        targetHp_ = 0;
        onChanged();
        return this;
      }

      private int targetMaxHp_ ;
      /**
       * optional uint32 target_max_hp = 6;
       */
      public boolean hasTargetMaxHp() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * optional uint32 target_max_hp = 6;
       */
      public int getTargetMaxHp() {
        return targetMaxHp_;
      }
      /**
       * optional uint32 target_max_hp = 6;
       */
      public Builder setTargetMaxHp(int value) {
        bitField0_ |= 0x00000020;
        targetMaxHp_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 target_max_hp = 6;
       */
      public Builder clearTargetMaxHp() {
        bitField0_ = (bitField0_ & ~0x00000020);
        targetMaxHp_ = 0;
        onChanged();
        return this;
      }

      private int arcanaLevel_ ;
      /**
       * optional uint32 arcana_level = 7;
       */
      public boolean hasArcanaLevel() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      /**
       * optional uint32 arcana_level = 7;
       */
      public int getArcanaLevel() {
        return arcanaLevel_;
      }
      /**
       * optional uint32 arcana_level = 7;
       */
      public Builder setArcanaLevel(int value) {
        bitField0_ |= 0x00000040;
        arcanaLevel_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 arcana_level = 7;
       */
      public Builder clearArcanaLevel() {
        bitField0_ = (bitField0_ & ~0x00000040);
        arcanaLevel_ = 0;
        onChanged();
        return this;
      }

      private boolean success_ ;
      /**
       * optional bool success = 8;
       */
      public boolean hasSuccess() {
        return ((bitField0_ & 0x00000080) == 0x00000080);
      }
      /**
       * optional bool success = 8;
       */
      public boolean getSuccess() {
        return success_;
      }
      /**
       * optional bool success = 8;
       */
      public Builder setSuccess(boolean value) {
        bitField0_ |= 0x00000080;
        success_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool success = 8;
       */
      public Builder clearSuccess() {
        bitField0_ = (bitField0_ & ~0x00000080);
        success_ = false;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_WRArcanaSummary)
    }

    static {
      defaultInstance = new CDOTAUserMsg_WRArcanaSummary(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_WRArcanaSummary)
  }

  public interface CDOTAUserMsg_EmptyItemSlotAlertOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_EmptyItemSlotAlert)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional int32 source_player_id = 1;
     */
    boolean hasSourcePlayerId();
    /**
     * optional int32 source_player_id = 1;
     */
    int getSourcePlayerId();

    /**
     * optional int32 target_player_id = 2;
     */
    boolean hasTargetPlayerId();
    /**
     * optional int32 target_player_id = 2;
     */
    int getTargetPlayerId();

    /**
     * optional int32 slot_index = 3;
     */
    boolean hasSlotIndex();
    /**
     * optional int32 slot_index = 3;
     */
    int getSlotIndex();

    /**
     * optional int32 cooldown_seconds = 4;
     */
    boolean hasCooldownSeconds();
    /**
     * optional int32 cooldown_seconds = 4;
     */
    int getCooldownSeconds();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_EmptyItemSlotAlert}
   */
  public static final class CDOTAUserMsg_EmptyItemSlotAlert extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_EmptyItemSlotAlert)
      CDOTAUserMsg_EmptyItemSlotAlertOrBuilder {
    // Use CDOTAUserMsg_EmptyItemSlotAlert.newBuilder() to construct.
    private CDOTAUserMsg_EmptyItemSlotAlert(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_EmptyItemSlotAlert(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_EmptyItemSlotAlert defaultInstance;
    public static CDOTAUserMsg_EmptyItemSlotAlert getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_EmptyItemSlotAlert getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_EmptyItemSlotAlert(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              sourcePlayerId_ = input.readInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              targetPlayerId_ = input.readInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              slotIndex_ = input.readInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              cooldownSeconds_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_EmptyItemSlotAlert_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_EmptyItemSlotAlert_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_EmptyItemSlotAlert.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_EmptyItemSlotAlert.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_EmptyItemSlotAlert parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_EmptyItemSlotAlert(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int SOURCE_PLAYER_ID_FIELD_NUMBER = 1;
    private int sourcePlayerId_;
    /**
     * optional int32 source_player_id = 1;
     */
    public boolean hasSourcePlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 source_player_id = 1;
     */
    public int getSourcePlayerId() {
      return sourcePlayerId_;
    }

    public static final int TARGET_PLAYER_ID_FIELD_NUMBER = 2;
    private int targetPlayerId_;
    /**
     * optional int32 target_player_id = 2;
     */
    public boolean hasTargetPlayerId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional int32 target_player_id = 2;
     */
    public int getTargetPlayerId() {
      return targetPlayerId_;
    }

    public static final int SLOT_INDEX_FIELD_NUMBER = 3;
    private int slotIndex_;
    /**
     * optional int32 slot_index = 3;
     */
    public boolean hasSlotIndex() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional int32 slot_index = 3;
     */
    public int getSlotIndex() {
      return slotIndex_;
    }

    public static final int COOLDOWN_SECONDS_FIELD_NUMBER = 4;
    private int cooldownSeconds_;
    /**
     * optional int32 cooldown_seconds = 4;
     */
    public boolean hasCooldownSeconds() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional int32 cooldown_seconds = 4;
     */
    public int getCooldownSeconds() {
      return cooldownSeconds_;
    }

    private void initFields() {
      sourcePlayerId_ = 0;
      targetPlayerId_ = 0;
      slotIndex_ = 0;
      cooldownSeconds_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, sourcePlayerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, targetPlayerId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeInt32(3, slotIndex_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeInt32(4, cooldownSeconds_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, sourcePlayerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, targetPlayerId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, slotIndex_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, cooldownSeconds_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_EmptyItemSlotAlert parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_EmptyItemSlotAlert parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_EmptyItemSlotAlert parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_EmptyItemSlotAlert parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_EmptyItemSlotAlert parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_EmptyItemSlotAlert parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_EmptyItemSlotAlert parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_EmptyItemSlotAlert parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_EmptyItemSlotAlert parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_EmptyItemSlotAlert parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_EmptyItemSlotAlert prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_EmptyItemSlotAlert}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_EmptyItemSlotAlert)
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_EmptyItemSlotAlertOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_EmptyItemSlotAlert_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_EmptyItemSlotAlert_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_EmptyItemSlotAlert.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_EmptyItemSlotAlert.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_EmptyItemSlotAlert.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        sourcePlayerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        targetPlayerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        slotIndex_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        cooldownSeconds_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_EmptyItemSlotAlert_descriptor;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_EmptyItemSlotAlert getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_EmptyItemSlotAlert.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_EmptyItemSlotAlert build() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_EmptyItemSlotAlert result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_EmptyItemSlotAlert buildPartial() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_EmptyItemSlotAlert result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_EmptyItemSlotAlert(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.sourcePlayerId_ = sourcePlayerId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.targetPlayerId_ = targetPlayerId_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.slotIndex_ = slotIndex_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.cooldownSeconds_ = cooldownSeconds_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_EmptyItemSlotAlert) {
          return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_EmptyItemSlotAlert)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_EmptyItemSlotAlert other) {
        if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_EmptyItemSlotAlert.getDefaultInstance()) return this;
        if (other.hasSourcePlayerId()) {
          setSourcePlayerId(other.getSourcePlayerId());
        }
        if (other.hasTargetPlayerId()) {
          setTargetPlayerId(other.getTargetPlayerId());
        }
        if (other.hasSlotIndex()) {
          setSlotIndex(other.getSlotIndex());
        }
        if (other.hasCooldownSeconds()) {
          setCooldownSeconds(other.getCooldownSeconds());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_EmptyItemSlotAlert parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_EmptyItemSlotAlert) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int sourcePlayerId_ ;
      /**
       * optional int32 source_player_id = 1;
       */
      public boolean hasSourcePlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 source_player_id = 1;
       */
      public int getSourcePlayerId() {
        return sourcePlayerId_;
      }
      /**
       * optional int32 source_player_id = 1;
       */
      public Builder setSourcePlayerId(int value) {
        bitField0_ |= 0x00000001;
        sourcePlayerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 source_player_id = 1;
       */
      public Builder clearSourcePlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        sourcePlayerId_ = 0;
        onChanged();
        return this;
      }

      private int targetPlayerId_ ;
      /**
       * optional int32 target_player_id = 2;
       */
      public boolean hasTargetPlayerId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional int32 target_player_id = 2;
       */
      public int getTargetPlayerId() {
        return targetPlayerId_;
      }
      /**
       * optional int32 target_player_id = 2;
       */
      public Builder setTargetPlayerId(int value) {
        bitField0_ |= 0x00000002;
        targetPlayerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 target_player_id = 2;
       */
      public Builder clearTargetPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        targetPlayerId_ = 0;
        onChanged();
        return this;
      }

      private int slotIndex_ ;
      /**
       * optional int32 slot_index = 3;
       */
      public boolean hasSlotIndex() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional int32 slot_index = 3;
       */
      public int getSlotIndex() {
        return slotIndex_;
      }
      /**
       * optional int32 slot_index = 3;
       */
      public Builder setSlotIndex(int value) {
        bitField0_ |= 0x00000004;
        slotIndex_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 slot_index = 3;
       */
      public Builder clearSlotIndex() {
        bitField0_ = (bitField0_ & ~0x00000004);
        slotIndex_ = 0;
        onChanged();
        return this;
      }

      private int cooldownSeconds_ ;
      /**
       * optional int32 cooldown_seconds = 4;
       */
      public boolean hasCooldownSeconds() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional int32 cooldown_seconds = 4;
       */
      public int getCooldownSeconds() {
        return cooldownSeconds_;
      }
      /**
       * optional int32 cooldown_seconds = 4;
       */
      public Builder setCooldownSeconds(int value) {
        bitField0_ |= 0x00000008;
        cooldownSeconds_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 cooldown_seconds = 4;
       */
      public Builder clearCooldownSeconds() {
        bitField0_ = (bitField0_ & ~0x00000008);
        cooldownSeconds_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_EmptyItemSlotAlert)
    }

    static {
      defaultInstance = new CDOTAUserMsg_EmptyItemSlotAlert(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_EmptyItemSlotAlert)
  }

  public interface CDOTAUserMsg_AghsStatusAlertOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_AghsStatusAlert)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional uint32 source_player_id = 1;
     */
    boolean hasSourcePlayerId();
    /**
     * optional uint32 source_player_id = 1;
     */
    int getSourcePlayerId();

    /**
     * optional uint32 target_player_id = 2;
     */
    boolean hasTargetPlayerId();
    /**
     * optional uint32 target_player_id = 2;
     */
    int getTargetPlayerId();

    /**
     * optional uint32 target_entindex = 3;
     */
    boolean hasTargetEntindex();
    /**
     * optional uint32 target_entindex = 3;
     */
    int getTargetEntindex();

    /**
     * optional uint32 alert_type = 4;
     */
    boolean hasAlertType();
    /**
     * optional uint32 alert_type = 4;
     */
    int getAlertType();

    /**
     * optional bool has_scepter = 5;
     */
    boolean hasHasScepter();
    /**
     * optional bool has_scepter = 5;
     */
    boolean getHasScepter();

    /**
     * optional bool has_shard = 6;
     */
    boolean hasHasShard();
    /**
     * optional bool has_shard = 6;
     */
    boolean getHasShard();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_AghsStatusAlert}
   */
  public static final class CDOTAUserMsg_AghsStatusAlert extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_AghsStatusAlert)
      CDOTAUserMsg_AghsStatusAlertOrBuilder {
    // Use CDOTAUserMsg_AghsStatusAlert.newBuilder() to construct.
    private CDOTAUserMsg_AghsStatusAlert(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_AghsStatusAlert(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_AghsStatusAlert defaultInstance;
    public static CDOTAUserMsg_AghsStatusAlert getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_AghsStatusAlert getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_AghsStatusAlert(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              sourcePlayerId_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              targetPlayerId_ = input.readUInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              targetEntindex_ = input.readUInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              alertType_ = input.readUInt32();
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              hasScepter_ = input.readBool();
              break;
            }
            case 48: {
              bitField0_ |= 0x00000020;
              hasShard_ = input.readBool();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_AghsStatusAlert_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_AghsStatusAlert_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AghsStatusAlert.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AghsStatusAlert.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_AghsStatusAlert parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_AghsStatusAlert(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int SOURCE_PLAYER_ID_FIELD_NUMBER = 1;
    private int sourcePlayerId_;
    /**
     * optional uint32 source_player_id = 1;
     */
    public boolean hasSourcePlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional uint32 source_player_id = 1;
     */
    public int getSourcePlayerId() {
      return sourcePlayerId_;
    }

    public static final int TARGET_PLAYER_ID_FIELD_NUMBER = 2;
    private int targetPlayerId_;
    /**
     * optional uint32 target_player_id = 2;
     */
    public boolean hasTargetPlayerId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional uint32 target_player_id = 2;
     */
    public int getTargetPlayerId() {
      return targetPlayerId_;
    }

    public static final int TARGET_ENTINDEX_FIELD_NUMBER = 3;
    private int targetEntindex_;
    /**
     * optional uint32 target_entindex = 3;
     */
    public boolean hasTargetEntindex() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional uint32 target_entindex = 3;
     */
    public int getTargetEntindex() {
      return targetEntindex_;
    }

    public static final int ALERT_TYPE_FIELD_NUMBER = 4;
    private int alertType_;
    /**
     * optional uint32 alert_type = 4;
     */
    public boolean hasAlertType() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional uint32 alert_type = 4;
     */
    public int getAlertType() {
      return alertType_;
    }

    public static final int HAS_SCEPTER_FIELD_NUMBER = 5;
    private boolean hasScepter_;
    /**
     * optional bool has_scepter = 5;
     */
    public boolean hasHasScepter() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * optional bool has_scepter = 5;
     */
    public boolean getHasScepter() {
      return hasScepter_;
    }

    public static final int HAS_SHARD_FIELD_NUMBER = 6;
    private boolean hasShard_;
    /**
     * optional bool has_shard = 6;
     */
    public boolean hasHasShard() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     * optional bool has_shard = 6;
     */
    public boolean getHasShard() {
      return hasShard_;
    }

    private void initFields() {
      sourcePlayerId_ = 0;
      targetPlayerId_ = 0;
      targetEntindex_ = 0;
      alertType_ = 0;
      hasScepter_ = false;
      hasShard_ = false;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, sourcePlayerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, targetPlayerId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeUInt32(3, targetEntindex_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeUInt32(4, alertType_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeBool(5, hasScepter_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeBool(6, hasShard_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, sourcePlayerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, targetPlayerId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, targetEntindex_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(4, alertType_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(5, hasScepter_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(6, hasShard_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AghsStatusAlert parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AghsStatusAlert parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AghsStatusAlert parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AghsStatusAlert parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AghsStatusAlert parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AghsStatusAlert parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AghsStatusAlert parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AghsStatusAlert parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AghsStatusAlert parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AghsStatusAlert parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AghsStatusAlert prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_AghsStatusAlert}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_AghsStatusAlert)
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AghsStatusAlertOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_AghsStatusAlert_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_AghsStatusAlert_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AghsStatusAlert.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AghsStatusAlert.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AghsStatusAlert.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        sourcePlayerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        targetPlayerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        targetEntindex_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        alertType_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        hasScepter_ = false;
        bitField0_ = (bitField0_ & ~0x00000010);
        hasShard_ = false;
        bitField0_ = (bitField0_ & ~0x00000020);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_AghsStatusAlert_descriptor;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AghsStatusAlert getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AghsStatusAlert.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AghsStatusAlert build() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AghsStatusAlert result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AghsStatusAlert buildPartial() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AghsStatusAlert result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AghsStatusAlert(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.sourcePlayerId_ = sourcePlayerId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.targetPlayerId_ = targetPlayerId_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.targetEntindex_ = targetEntindex_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.alertType_ = alertType_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.hasScepter_ = hasScepter_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        result.hasShard_ = hasShard_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AghsStatusAlert) {
          return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AghsStatusAlert)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AghsStatusAlert other) {
        if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AghsStatusAlert.getDefaultInstance()) return this;
        if (other.hasSourcePlayerId()) {
          setSourcePlayerId(other.getSourcePlayerId());
        }
        if (other.hasTargetPlayerId()) {
          setTargetPlayerId(other.getTargetPlayerId());
        }
        if (other.hasTargetEntindex()) {
          setTargetEntindex(other.getTargetEntindex());
        }
        if (other.hasAlertType()) {
          setAlertType(other.getAlertType());
        }
        if (other.hasHasScepter()) {
          setHasScepter(other.getHasScepter());
        }
        if (other.hasHasShard()) {
          setHasShard(other.getHasShard());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AghsStatusAlert parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_AghsStatusAlert) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int sourcePlayerId_ ;
      /**
       * optional uint32 source_player_id = 1;
       */
      public boolean hasSourcePlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional uint32 source_player_id = 1;
       */
      public int getSourcePlayerId() {
        return sourcePlayerId_;
      }
      /**
       * optional uint32 source_player_id = 1;
       */
      public Builder setSourcePlayerId(int value) {
        bitField0_ |= 0x00000001;
        sourcePlayerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 source_player_id = 1;
       */
      public Builder clearSourcePlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        sourcePlayerId_ = 0;
        onChanged();
        return this;
      }

      private int targetPlayerId_ ;
      /**
       * optional uint32 target_player_id = 2;
       */
      public boolean hasTargetPlayerId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional uint32 target_player_id = 2;
       */
      public int getTargetPlayerId() {
        return targetPlayerId_;
      }
      /**
       * optional uint32 target_player_id = 2;
       */
      public Builder setTargetPlayerId(int value) {
        bitField0_ |= 0x00000002;
        targetPlayerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 target_player_id = 2;
       */
      public Builder clearTargetPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        targetPlayerId_ = 0;
        onChanged();
        return this;
      }

      private int targetEntindex_ ;
      /**
       * optional uint32 target_entindex = 3;
       */
      public boolean hasTargetEntindex() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional uint32 target_entindex = 3;
       */
      public int getTargetEntindex() {
        return targetEntindex_;
      }
      /**
       * optional uint32 target_entindex = 3;
       */
      public Builder setTargetEntindex(int value) {
        bitField0_ |= 0x00000004;
        targetEntindex_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 target_entindex = 3;
       */
      public Builder clearTargetEntindex() {
        bitField0_ = (bitField0_ & ~0x00000004);
        targetEntindex_ = 0;
        onChanged();
        return this;
      }

      private int alertType_ ;
      /**
       * optional uint32 alert_type = 4;
       */
      public boolean hasAlertType() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional uint32 alert_type = 4;
       */
      public int getAlertType() {
        return alertType_;
      }
      /**
       * optional uint32 alert_type = 4;
       */
      public Builder setAlertType(int value) {
        bitField0_ |= 0x00000008;
        alertType_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 alert_type = 4;
       */
      public Builder clearAlertType() {
        bitField0_ = (bitField0_ & ~0x00000008);
        alertType_ = 0;
        onChanged();
        return this;
      }

      private boolean hasScepter_ ;
      /**
       * optional bool has_scepter = 5;
       */
      public boolean hasHasScepter() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * optional bool has_scepter = 5;
       */
      public boolean getHasScepter() {
        return hasScepter_;
      }
      /**
       * optional bool has_scepter = 5;
       */
      public Builder setHasScepter(boolean value) {
        bitField0_ |= 0x00000010;
        hasScepter_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool has_scepter = 5;
       */
      public Builder clearHasScepter() {
        bitField0_ = (bitField0_ & ~0x00000010);
        hasScepter_ = false;
        onChanged();
        return this;
      }

      private boolean hasShard_ ;
      /**
       * optional bool has_shard = 6;
       */
      public boolean hasHasShard() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * optional bool has_shard = 6;
       */
      public boolean getHasShard() {
        return hasShard_;
      }
      /**
       * optional bool has_shard = 6;
       */
      public Builder setHasShard(boolean value) {
        bitField0_ |= 0x00000020;
        hasShard_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool has_shard = 6;
       */
      public Builder clearHasShard() {
        bitField0_ = (bitField0_ & ~0x00000020);
        hasShard_ = false;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_AghsStatusAlert)
    }

    static {
      defaultInstance = new CDOTAUserMsg_AghsStatusAlert(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_AghsStatusAlert)
  }

  public interface CDOTAUserMsg_MutedPlayersOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_MutedPlayers)
      com.google.protobuf.MessageOrBuilder {

    /**
     * repeated int32 text_muted_player_ids = 1;
     */
    java.util.List getTextMutedPlayerIdsList();
    /**
     * repeated int32 text_muted_player_ids = 1;
     */
    int getTextMutedPlayerIdsCount();
    /**
     * repeated int32 text_muted_player_ids = 1;
     */
    int getTextMutedPlayerIds(int index);

    /**
     * repeated int32 voice_muted_player_ids = 2;
     */
    java.util.List getVoiceMutedPlayerIdsList();
    /**
     * repeated int32 voice_muted_player_ids = 2;
     */
    int getVoiceMutedPlayerIdsCount();
    /**
     * repeated int32 voice_muted_player_ids = 2;
     */
    int getVoiceMutedPlayerIds(int index);
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_MutedPlayers}
   */
  public static final class CDOTAUserMsg_MutedPlayers extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_MutedPlayers)
      CDOTAUserMsg_MutedPlayersOrBuilder {
    // Use CDOTAUserMsg_MutedPlayers.newBuilder() to construct.
    private CDOTAUserMsg_MutedPlayers(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_MutedPlayers(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_MutedPlayers defaultInstance;
    public static CDOTAUserMsg_MutedPlayers getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_MutedPlayers getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_MutedPlayers(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                textMutedPlayerIds_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000001;
              }
              textMutedPlayerIds_.add(input.readInt32());
              break;
            }
            case 10: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001) && input.getBytesUntilLimit() > 0) {
                textMutedPlayerIds_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000001;
              }
              while (input.getBytesUntilLimit() > 0) {
                textMutedPlayerIds_.add(input.readInt32());
              }
              input.popLimit(limit);
              break;
            }
            case 16: {
              if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                voiceMutedPlayerIds_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000002;
              }
              voiceMutedPlayerIds_.add(input.readInt32());
              break;
            }
            case 18: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              if (!((mutable_bitField0_ & 0x00000002) == 0x00000002) && input.getBytesUntilLimit() > 0) {
                voiceMutedPlayerIds_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000002;
              }
              while (input.getBytesUntilLimit() > 0) {
                voiceMutedPlayerIds_.add(input.readInt32());
              }
              input.popLimit(limit);
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
          textMutedPlayerIds_ = java.util.Collections.unmodifiableList(textMutedPlayerIds_);
        }
        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
          voiceMutedPlayerIds_ = java.util.Collections.unmodifiableList(voiceMutedPlayerIds_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_MutedPlayers_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_MutedPlayers_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MutedPlayers.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MutedPlayers.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_MutedPlayers parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_MutedPlayers(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    public static final int TEXT_MUTED_PLAYER_IDS_FIELD_NUMBER = 1;
    private java.util.List textMutedPlayerIds_;
    /**
     * repeated int32 text_muted_player_ids = 1;
     */
    public java.util.List
        getTextMutedPlayerIdsList() {
      return textMutedPlayerIds_;
    }
    /**
     * repeated int32 text_muted_player_ids = 1;
     */
    public int getTextMutedPlayerIdsCount() {
      return textMutedPlayerIds_.size();
    }
    /**
     * repeated int32 text_muted_player_ids = 1;
     */
    public int getTextMutedPlayerIds(int index) {
      return textMutedPlayerIds_.get(index);
    }

    public static final int VOICE_MUTED_PLAYER_IDS_FIELD_NUMBER = 2;
    private java.util.List voiceMutedPlayerIds_;
    /**
     * repeated int32 voice_muted_player_ids = 2;
     */
    public java.util.List
        getVoiceMutedPlayerIdsList() {
      return voiceMutedPlayerIds_;
    }
    /**
     * repeated int32 voice_muted_player_ids = 2;
     */
    public int getVoiceMutedPlayerIdsCount() {
      return voiceMutedPlayerIds_.size();
    }
    /**
     * repeated int32 voice_muted_player_ids = 2;
     */
    public int getVoiceMutedPlayerIds(int index) {
      return voiceMutedPlayerIds_.get(index);
    }

    private void initFields() {
      textMutedPlayerIds_ = java.util.Collections.emptyList();
      voiceMutedPlayerIds_ = java.util.Collections.emptyList();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      for (int i = 0; i < textMutedPlayerIds_.size(); i++) {
        output.writeInt32(1, textMutedPlayerIds_.get(i));
      }
      for (int i = 0; i < voiceMutedPlayerIds_.size(); i++) {
        output.writeInt32(2, voiceMutedPlayerIds_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      {
        int dataSize = 0;
        for (int i = 0; i < textMutedPlayerIds_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(textMutedPlayerIds_.get(i));
        }
        size += dataSize;
        size += 1 * getTextMutedPlayerIdsList().size();
      }
      {
        int dataSize = 0;
        for (int i = 0; i < voiceMutedPlayerIds_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(voiceMutedPlayerIds_.get(i));
        }
        size += dataSize;
        size += 1 * getVoiceMutedPlayerIdsList().size();
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MutedPlayers parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MutedPlayers parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MutedPlayers parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MutedPlayers parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MutedPlayers parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MutedPlayers parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MutedPlayers parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MutedPlayers parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MutedPlayers parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MutedPlayers parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MutedPlayers prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_MutedPlayers}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_MutedPlayers)
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MutedPlayersOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_MutedPlayers_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_MutedPlayers_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MutedPlayers.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MutedPlayers.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MutedPlayers.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        textMutedPlayerIds_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000001);
        voiceMutedPlayerIds_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_MutedPlayers_descriptor;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MutedPlayers getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MutedPlayers.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MutedPlayers build() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MutedPlayers result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MutedPlayers buildPartial() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MutedPlayers result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MutedPlayers(this);
        int from_bitField0_ = bitField0_;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          textMutedPlayerIds_ = java.util.Collections.unmodifiableList(textMutedPlayerIds_);
          bitField0_ = (bitField0_ & ~0x00000001);
        }
        result.textMutedPlayerIds_ = textMutedPlayerIds_;
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          voiceMutedPlayerIds_ = java.util.Collections.unmodifiableList(voiceMutedPlayerIds_);
          bitField0_ = (bitField0_ & ~0x00000002);
        }
        result.voiceMutedPlayerIds_ = voiceMutedPlayerIds_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MutedPlayers) {
          return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MutedPlayers)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MutedPlayers other) {
        if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MutedPlayers.getDefaultInstance()) return this;
        if (!other.textMutedPlayerIds_.isEmpty()) {
          if (textMutedPlayerIds_.isEmpty()) {
            textMutedPlayerIds_ = other.textMutedPlayerIds_;
            bitField0_ = (bitField0_ & ~0x00000001);
          } else {
            ensureTextMutedPlayerIdsIsMutable();
            textMutedPlayerIds_.addAll(other.textMutedPlayerIds_);
          }
          onChanged();
        }
        if (!other.voiceMutedPlayerIds_.isEmpty()) {
          if (voiceMutedPlayerIds_.isEmpty()) {
            voiceMutedPlayerIds_ = other.voiceMutedPlayerIds_;
            bitField0_ = (bitField0_ & ~0x00000002);
          } else {
            ensureVoiceMutedPlayerIdsIsMutable();
            voiceMutedPlayerIds_.addAll(other.voiceMutedPlayerIds_);
          }
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MutedPlayers parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_MutedPlayers) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.util.List textMutedPlayerIds_ = java.util.Collections.emptyList();
      private void ensureTextMutedPlayerIdsIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          textMutedPlayerIds_ = new java.util.ArrayList(textMutedPlayerIds_);
          bitField0_ |= 0x00000001;
         }
      }
      /**
       * repeated int32 text_muted_player_ids = 1;
       */
      public java.util.List
          getTextMutedPlayerIdsList() {
        return java.util.Collections.unmodifiableList(textMutedPlayerIds_);
      }
      /**
       * repeated int32 text_muted_player_ids = 1;
       */
      public int getTextMutedPlayerIdsCount() {
        return textMutedPlayerIds_.size();
      }
      /**
       * repeated int32 text_muted_player_ids = 1;
       */
      public int getTextMutedPlayerIds(int index) {
        return textMutedPlayerIds_.get(index);
      }
      /**
       * repeated int32 text_muted_player_ids = 1;
       */
      public Builder setTextMutedPlayerIds(
          int index, int value) {
        ensureTextMutedPlayerIdsIsMutable();
        textMutedPlayerIds_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * repeated int32 text_muted_player_ids = 1;
       */
      public Builder addTextMutedPlayerIds(int value) {
        ensureTextMutedPlayerIdsIsMutable();
        textMutedPlayerIds_.add(value);
        onChanged();
        return this;
      }
      /**
       * repeated int32 text_muted_player_ids = 1;
       */
      public Builder addAllTextMutedPlayerIds(
          java.lang.Iterable values) {
        ensureTextMutedPlayerIdsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, textMutedPlayerIds_);
        onChanged();
        return this;
      }
      /**
       * repeated int32 text_muted_player_ids = 1;
       */
      public Builder clearTextMutedPlayerIds() {
        textMutedPlayerIds_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }

      private java.util.List voiceMutedPlayerIds_ = java.util.Collections.emptyList();
      private void ensureVoiceMutedPlayerIdsIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          voiceMutedPlayerIds_ = new java.util.ArrayList(voiceMutedPlayerIds_);
          bitField0_ |= 0x00000002;
         }
      }
      /**
       * repeated int32 voice_muted_player_ids = 2;
       */
      public java.util.List
          getVoiceMutedPlayerIdsList() {
        return java.util.Collections.unmodifiableList(voiceMutedPlayerIds_);
      }
      /**
       * repeated int32 voice_muted_player_ids = 2;
       */
      public int getVoiceMutedPlayerIdsCount() {
        return voiceMutedPlayerIds_.size();
      }
      /**
       * repeated int32 voice_muted_player_ids = 2;
       */
      public int getVoiceMutedPlayerIds(int index) {
        return voiceMutedPlayerIds_.get(index);
      }
      /**
       * repeated int32 voice_muted_player_ids = 2;
       */
      public Builder setVoiceMutedPlayerIds(
          int index, int value) {
        ensureVoiceMutedPlayerIdsIsMutable();
        voiceMutedPlayerIds_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * repeated int32 voice_muted_player_ids = 2;
       */
      public Builder addVoiceMutedPlayerIds(int value) {
        ensureVoiceMutedPlayerIdsIsMutable();
        voiceMutedPlayerIds_.add(value);
        onChanged();
        return this;
      }
      /**
       * repeated int32 voice_muted_player_ids = 2;
       */
      public Builder addAllVoiceMutedPlayerIds(
          java.lang.Iterable values) {
        ensureVoiceMutedPlayerIdsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, voiceMutedPlayerIds_);
        onChanged();
        return this;
      }
      /**
       * repeated int32 voice_muted_player_ids = 2;
       */
      public Builder clearVoiceMutedPlayerIds() {
        voiceMutedPlayerIds_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_MutedPlayers)
    }

    static {
      defaultInstance = new CDOTAUserMsg_MutedPlayers(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_MutedPlayers)
  }

  public interface CDOTAUserMsg_ContextualTipOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_ContextualTip)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional int32 tip_id = 1;
     */
    boolean hasTipId();
    /**
     * optional int32 tip_id = 1;
     */
    int getTipId();

    /**
     * repeated string referenced_abilities = 2;
     */
    com.google.protobuf.ProtocolStringList
        getReferencedAbilitiesList();
    /**
     * repeated string referenced_abilities = 2;
     */
    int getReferencedAbilitiesCount();
    /**
     * repeated string referenced_abilities = 2;
     */
    java.lang.String getReferencedAbilities(int index);
    /**
     * repeated string referenced_abilities = 2;
     */
    com.google.protobuf.ByteString
        getReferencedAbilitiesBytes(int index);

    /**
     * repeated string referenced_units = 3;
     */
    com.google.protobuf.ProtocolStringList
        getReferencedUnitsList();
    /**
     * repeated string referenced_units = 3;
     */
    int getReferencedUnitsCount();
    /**
     * repeated string referenced_units = 3;
     */
    java.lang.String getReferencedUnits(int index);
    /**
     * repeated string referenced_units = 3;
     */
    com.google.protobuf.ByteString
        getReferencedUnitsBytes(int index);

    /**
     * repeated string panorama_classes = 4;
     */
    com.google.protobuf.ProtocolStringList
        getPanoramaClassesList();
    /**
     * repeated string panorama_classes = 4;
     */
    int getPanoramaClassesCount();
    /**
     * repeated string panorama_classes = 4;
     */
    java.lang.String getPanoramaClasses(int index);
    /**
     * repeated string panorama_classes = 4;
     */
    com.google.protobuf.ByteString
        getPanoramaClassesBytes(int index);

    /**
     * optional bool force_annotation = 5;
     */
    boolean hasForceAnnotation();
    /**
     * optional bool force_annotation = 5;
     */
    boolean getForceAnnotation();

    /**
     * optional int32 variant = 6;
     */
    boolean hasVariant();
    /**
     * optional int32 variant = 6;
     */
    int getVariant();

    /**
     * optional int32 int_param = 7;
     */
    boolean hasIntParam();
    /**
     * optional int32 int_param = 7;
     */
    int getIntParam();

    /**
     * optional int32 int_param2 = 8;
     */
    boolean hasIntParam2();
    /**
     * optional int32 int_param2 = 8;
     */
    int getIntParam2();

    /**
     * optional float float_param = 9;
     */
    boolean hasFloatParam();
    /**
     * optional float float_param = 9;
     */
    float getFloatParam();

    /**
     * optional float float_param2 = 10;
     */
    boolean hasFloatParam2();
    /**
     * optional float float_param2 = 10;
     */
    float getFloatParam2();

    /**
     * optional string string_param = 11;
     */
    boolean hasStringParam();
    /**
     * optional string string_param = 11;
     */
    java.lang.String getStringParam();
    /**
     * optional string string_param = 11;
     */
    com.google.protobuf.ByteString
        getStringParamBytes();

    /**
     * optional string string_param2 = 12;
     */
    boolean hasStringParam2();
    /**
     * optional string string_param2 = 12;
     */
    java.lang.String getStringParam2();
    /**
     * optional string string_param2 = 12;
     */
    com.google.protobuf.ByteString
        getStringParam2Bytes();

    /**
     * optional string tip_text_override = 13;
     */
    boolean hasTipTextOverride();
    /**
     * optional string tip_text_override = 13;
     */
    java.lang.String getTipTextOverride();
    /**
     * optional string tip_text_override = 13;
     */
    com.google.protobuf.ByteString
        getTipTextOverrideBytes();

    /**
     * optional string tip_annotation_override = 14;
     */
    boolean hasTipAnnotationOverride();
    /**
     * optional string tip_annotation_override = 14;
     */
    java.lang.String getTipAnnotationOverride();
    /**
     * optional string tip_annotation_override = 14;
     */
    com.google.protobuf.ByteString
        getTipAnnotationOverrideBytes();

    /**
     * optional string panorama_snippet = 15;
     */
    boolean hasPanoramaSnippet();
    /**
     * optional string panorama_snippet = 15;
     */
    java.lang.String getPanoramaSnippet();
    /**
     * optional string panorama_snippet = 15;
     */
    com.google.protobuf.ByteString
        getPanoramaSnippetBytes();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_ContextualTip}
   */
  public static final class CDOTAUserMsg_ContextualTip extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_ContextualTip)
      CDOTAUserMsg_ContextualTipOrBuilder {
    // Use CDOTAUserMsg_ContextualTip.newBuilder() to construct.
    private CDOTAUserMsg_ContextualTip(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_ContextualTip(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_ContextualTip defaultInstance;
    public static CDOTAUserMsg_ContextualTip getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_ContextualTip getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_ContextualTip(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              tipId_ = input.readInt32();
              break;
            }
            case 18: {
              com.google.protobuf.ByteString bs = input.readBytes();
              if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                referencedAbilities_ = new com.google.protobuf.LazyStringArrayList();
                mutable_bitField0_ |= 0x00000002;
              }
              referencedAbilities_.add(bs);
              break;
            }
            case 26: {
              com.google.protobuf.ByteString bs = input.readBytes();
              if (!((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
                referencedUnits_ = new com.google.protobuf.LazyStringArrayList();
                mutable_bitField0_ |= 0x00000004;
              }
              referencedUnits_.add(bs);
              break;
            }
            case 34: {
              com.google.protobuf.ByteString bs = input.readBytes();
              if (!((mutable_bitField0_ & 0x00000008) == 0x00000008)) {
                panoramaClasses_ = new com.google.protobuf.LazyStringArrayList();
                mutable_bitField0_ |= 0x00000008;
              }
              panoramaClasses_.add(bs);
              break;
            }
            case 40: {
              bitField0_ |= 0x00000002;
              forceAnnotation_ = input.readBool();
              break;
            }
            case 48: {
              bitField0_ |= 0x00000004;
              variant_ = input.readInt32();
              break;
            }
            case 56: {
              bitField0_ |= 0x00000008;
              intParam_ = input.readInt32();
              break;
            }
            case 64: {
              bitField0_ |= 0x00000010;
              intParam2_ = input.readInt32();
              break;
            }
            case 77: {
              bitField0_ |= 0x00000020;
              floatParam_ = input.readFloat();
              break;
            }
            case 85: {
              bitField0_ |= 0x00000040;
              floatParam2_ = input.readFloat();
              break;
            }
            case 90: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000080;
              stringParam_ = bs;
              break;
            }
            case 98: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000100;
              stringParam2_ = bs;
              break;
            }
            case 106: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000200;
              tipTextOverride_ = bs;
              break;
            }
            case 114: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000400;
              tipAnnotationOverride_ = bs;
              break;
            }
            case 122: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000800;
              panoramaSnippet_ = bs;
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
          referencedAbilities_ = referencedAbilities_.getUnmodifiableView();
        }
        if (((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
          referencedUnits_ = referencedUnits_.getUnmodifiableView();
        }
        if (((mutable_bitField0_ & 0x00000008) == 0x00000008)) {
          panoramaClasses_ = panoramaClasses_.getUnmodifiableView();
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ContextualTip_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ContextualTip_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ContextualTip.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ContextualTip.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_ContextualTip parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_ContextualTip(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int TIP_ID_FIELD_NUMBER = 1;
    private int tipId_;
    /**
     * optional int32 tip_id = 1;
     */
    public boolean hasTipId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 tip_id = 1;
     */
    public int getTipId() {
      return tipId_;
    }

    public static final int REFERENCED_ABILITIES_FIELD_NUMBER = 2;
    private com.google.protobuf.LazyStringList referencedAbilities_;
    /**
     * repeated string referenced_abilities = 2;
     */
    public com.google.protobuf.ProtocolStringList
        getReferencedAbilitiesList() {
      return referencedAbilities_;
    }
    /**
     * repeated string referenced_abilities = 2;
     */
    public int getReferencedAbilitiesCount() {
      return referencedAbilities_.size();
    }
    /**
     * repeated string referenced_abilities = 2;
     */
    public java.lang.String getReferencedAbilities(int index) {
      return referencedAbilities_.get(index);
    }
    /**
     * repeated string referenced_abilities = 2;
     */
    public com.google.protobuf.ByteString
        getReferencedAbilitiesBytes(int index) {
      return referencedAbilities_.getByteString(index);
    }

    public static final int REFERENCED_UNITS_FIELD_NUMBER = 3;
    private com.google.protobuf.LazyStringList referencedUnits_;
    /**
     * repeated string referenced_units = 3;
     */
    public com.google.protobuf.ProtocolStringList
        getReferencedUnitsList() {
      return referencedUnits_;
    }
    /**
     * repeated string referenced_units = 3;
     */
    public int getReferencedUnitsCount() {
      return referencedUnits_.size();
    }
    /**
     * repeated string referenced_units = 3;
     */
    public java.lang.String getReferencedUnits(int index) {
      return referencedUnits_.get(index);
    }
    /**
     * repeated string referenced_units = 3;
     */
    public com.google.protobuf.ByteString
        getReferencedUnitsBytes(int index) {
      return referencedUnits_.getByteString(index);
    }

    public static final int PANORAMA_CLASSES_FIELD_NUMBER = 4;
    private com.google.protobuf.LazyStringList panoramaClasses_;
    /**
     * repeated string panorama_classes = 4;
     */
    public com.google.protobuf.ProtocolStringList
        getPanoramaClassesList() {
      return panoramaClasses_;
    }
    /**
     * repeated string panorama_classes = 4;
     */
    public int getPanoramaClassesCount() {
      return panoramaClasses_.size();
    }
    /**
     * repeated string panorama_classes = 4;
     */
    public java.lang.String getPanoramaClasses(int index) {
      return panoramaClasses_.get(index);
    }
    /**
     * repeated string panorama_classes = 4;
     */
    public com.google.protobuf.ByteString
        getPanoramaClassesBytes(int index) {
      return panoramaClasses_.getByteString(index);
    }

    public static final int FORCE_ANNOTATION_FIELD_NUMBER = 5;
    private boolean forceAnnotation_;
    /**
     * optional bool force_annotation = 5;
     */
    public boolean hasForceAnnotation() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional bool force_annotation = 5;
     */
    public boolean getForceAnnotation() {
      return forceAnnotation_;
    }

    public static final int VARIANT_FIELD_NUMBER = 6;
    private int variant_;
    /**
     * optional int32 variant = 6;
     */
    public boolean hasVariant() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional int32 variant = 6;
     */
    public int getVariant() {
      return variant_;
    }

    public static final int INT_PARAM_FIELD_NUMBER = 7;
    private int intParam_;
    /**
     * optional int32 int_param = 7;
     */
    public boolean hasIntParam() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional int32 int_param = 7;
     */
    public int getIntParam() {
      return intParam_;
    }

    public static final int INT_PARAM2_FIELD_NUMBER = 8;
    private int intParam2_;
    /**
     * optional int32 int_param2 = 8;
     */
    public boolean hasIntParam2() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * optional int32 int_param2 = 8;
     */
    public int getIntParam2() {
      return intParam2_;
    }

    public static final int FLOAT_PARAM_FIELD_NUMBER = 9;
    private float floatParam_;
    /**
     * optional float float_param = 9;
     */
    public boolean hasFloatParam() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     * optional float float_param = 9;
     */
    public float getFloatParam() {
      return floatParam_;
    }

    public static final int FLOAT_PARAM2_FIELD_NUMBER = 10;
    private float floatParam2_;
    /**
     * optional float float_param2 = 10;
     */
    public boolean hasFloatParam2() {
      return ((bitField0_ & 0x00000040) == 0x00000040);
    }
    /**
     * optional float float_param2 = 10;
     */
    public float getFloatParam2() {
      return floatParam2_;
    }

    public static final int STRING_PARAM_FIELD_NUMBER = 11;
    private java.lang.Object stringParam_;
    /**
     * optional string string_param = 11;
     */
    public boolean hasStringParam() {
      return ((bitField0_ & 0x00000080) == 0x00000080);
    }
    /**
     * optional string string_param = 11;
     */
    public java.lang.String getStringParam() {
      java.lang.Object ref = stringParam_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          stringParam_ = s;
        }
        return s;
      }
    }
    /**
     * optional string string_param = 11;
     */
    public com.google.protobuf.ByteString
        getStringParamBytes() {
      java.lang.Object ref = stringParam_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        stringParam_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int STRING_PARAM2_FIELD_NUMBER = 12;
    private java.lang.Object stringParam2_;
    /**
     * optional string string_param2 = 12;
     */
    public boolean hasStringParam2() {
      return ((bitField0_ & 0x00000100) == 0x00000100);
    }
    /**
     * optional string string_param2 = 12;
     */
    public java.lang.String getStringParam2() {
      java.lang.Object ref = stringParam2_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          stringParam2_ = s;
        }
        return s;
      }
    }
    /**
     * optional string string_param2 = 12;
     */
    public com.google.protobuf.ByteString
        getStringParam2Bytes() {
      java.lang.Object ref = stringParam2_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        stringParam2_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int TIP_TEXT_OVERRIDE_FIELD_NUMBER = 13;
    private java.lang.Object tipTextOverride_;
    /**
     * optional string tip_text_override = 13;
     */
    public boolean hasTipTextOverride() {
      return ((bitField0_ & 0x00000200) == 0x00000200);
    }
    /**
     * optional string tip_text_override = 13;
     */
    public java.lang.String getTipTextOverride() {
      java.lang.Object ref = tipTextOverride_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          tipTextOverride_ = s;
        }
        return s;
      }
    }
    /**
     * optional string tip_text_override = 13;
     */
    public com.google.protobuf.ByteString
        getTipTextOverrideBytes() {
      java.lang.Object ref = tipTextOverride_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        tipTextOverride_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int TIP_ANNOTATION_OVERRIDE_FIELD_NUMBER = 14;
    private java.lang.Object tipAnnotationOverride_;
    /**
     * optional string tip_annotation_override = 14;
     */
    public boolean hasTipAnnotationOverride() {
      return ((bitField0_ & 0x00000400) == 0x00000400);
    }
    /**
     * optional string tip_annotation_override = 14;
     */
    public java.lang.String getTipAnnotationOverride() {
      java.lang.Object ref = tipAnnotationOverride_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          tipAnnotationOverride_ = s;
        }
        return s;
      }
    }
    /**
     * optional string tip_annotation_override = 14;
     */
    public com.google.protobuf.ByteString
        getTipAnnotationOverrideBytes() {
      java.lang.Object ref = tipAnnotationOverride_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        tipAnnotationOverride_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int PANORAMA_SNIPPET_FIELD_NUMBER = 15;
    private java.lang.Object panoramaSnippet_;
    /**
     * optional string panorama_snippet = 15;
     */
    public boolean hasPanoramaSnippet() {
      return ((bitField0_ & 0x00000800) == 0x00000800);
    }
    /**
     * optional string panorama_snippet = 15;
     */
    public java.lang.String getPanoramaSnippet() {
      java.lang.Object ref = panoramaSnippet_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          panoramaSnippet_ = s;
        }
        return s;
      }
    }
    /**
     * optional string panorama_snippet = 15;
     */
    public com.google.protobuf.ByteString
        getPanoramaSnippetBytes() {
      java.lang.Object ref = panoramaSnippet_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        panoramaSnippet_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private void initFields() {
      tipId_ = 0;
      referencedAbilities_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      referencedUnits_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      panoramaClasses_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      forceAnnotation_ = false;
      variant_ = 0;
      intParam_ = 0;
      intParam2_ = 0;
      floatParam_ = 0F;
      floatParam2_ = 0F;
      stringParam_ = "";
      stringParam2_ = "";
      tipTextOverride_ = "";
      tipAnnotationOverride_ = "";
      panoramaSnippet_ = "";
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, tipId_);
      }
      for (int i = 0; i < referencedAbilities_.size(); i++) {
        output.writeBytes(2, referencedAbilities_.getByteString(i));
      }
      for (int i = 0; i < referencedUnits_.size(); i++) {
        output.writeBytes(3, referencedUnits_.getByteString(i));
      }
      for (int i = 0; i < panoramaClasses_.size(); i++) {
        output.writeBytes(4, panoramaClasses_.getByteString(i));
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBool(5, forceAnnotation_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeInt32(6, variant_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeInt32(7, intParam_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeInt32(8, intParam2_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeFloat(9, floatParam_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        output.writeFloat(10, floatParam2_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        output.writeBytes(11, getStringParamBytes());
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        output.writeBytes(12, getStringParam2Bytes());
      }
      if (((bitField0_ & 0x00000200) == 0x00000200)) {
        output.writeBytes(13, getTipTextOverrideBytes());
      }
      if (((bitField0_ & 0x00000400) == 0x00000400)) {
        output.writeBytes(14, getTipAnnotationOverrideBytes());
      }
      if (((bitField0_ & 0x00000800) == 0x00000800)) {
        output.writeBytes(15, getPanoramaSnippetBytes());
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, tipId_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < referencedAbilities_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeBytesSizeNoTag(referencedAbilities_.getByteString(i));
        }
        size += dataSize;
        size += 1 * getReferencedAbilitiesList().size();
      }
      {
        int dataSize = 0;
        for (int i = 0; i < referencedUnits_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeBytesSizeNoTag(referencedUnits_.getByteString(i));
        }
        size += dataSize;
        size += 1 * getReferencedUnitsList().size();
      }
      {
        int dataSize = 0;
        for (int i = 0; i < panoramaClasses_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeBytesSizeNoTag(panoramaClasses_.getByteString(i));
        }
        size += dataSize;
        size += 1 * getPanoramaClassesList().size();
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(5, forceAnnotation_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(6, variant_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(7, intParam_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(8, intParam2_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(9, floatParam_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(10, floatParam2_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(11, getStringParamBytes());
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(12, getStringParam2Bytes());
      }
      if (((bitField0_ & 0x00000200) == 0x00000200)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(13, getTipTextOverrideBytes());
      }
      if (((bitField0_ & 0x00000400) == 0x00000400)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(14, getTipAnnotationOverrideBytes());
      }
      if (((bitField0_ & 0x00000800) == 0x00000800)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(15, getPanoramaSnippetBytes());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ContextualTip parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ContextualTip parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ContextualTip parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ContextualTip parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ContextualTip parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ContextualTip parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ContextualTip parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ContextualTip parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ContextualTip parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ContextualTip parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ContextualTip prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_ContextualTip}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_ContextualTip)
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ContextualTipOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ContextualTip_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ContextualTip_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ContextualTip.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ContextualTip.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ContextualTip.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        tipId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        referencedAbilities_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000002);
        referencedUnits_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000004);
        panoramaClasses_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000008);
        forceAnnotation_ = false;
        bitField0_ = (bitField0_ & ~0x00000010);
        variant_ = 0;
        bitField0_ = (bitField0_ & ~0x00000020);
        intParam_ = 0;
        bitField0_ = (bitField0_ & ~0x00000040);
        intParam2_ = 0;
        bitField0_ = (bitField0_ & ~0x00000080);
        floatParam_ = 0F;
        bitField0_ = (bitField0_ & ~0x00000100);
        floatParam2_ = 0F;
        bitField0_ = (bitField0_ & ~0x00000200);
        stringParam_ = "";
        bitField0_ = (bitField0_ & ~0x00000400);
        stringParam2_ = "";
        bitField0_ = (bitField0_ & ~0x00000800);
        tipTextOverride_ = "";
        bitField0_ = (bitField0_ & ~0x00001000);
        tipAnnotationOverride_ = "";
        bitField0_ = (bitField0_ & ~0x00002000);
        panoramaSnippet_ = "";
        bitField0_ = (bitField0_ & ~0x00004000);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ContextualTip_descriptor;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ContextualTip getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ContextualTip.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ContextualTip build() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ContextualTip result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ContextualTip buildPartial() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ContextualTip result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ContextualTip(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.tipId_ = tipId_;
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          referencedAbilities_ = referencedAbilities_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000002);
        }
        result.referencedAbilities_ = referencedAbilities_;
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          referencedUnits_ = referencedUnits_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000004);
        }
        result.referencedUnits_ = referencedUnits_;
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          panoramaClasses_ = panoramaClasses_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000008);
        }
        result.panoramaClasses_ = panoramaClasses_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000002;
        }
        result.forceAnnotation_ = forceAnnotation_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000004;
        }
        result.variant_ = variant_;
        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
          to_bitField0_ |= 0x00000008;
        }
        result.intParam_ = intParam_;
        if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
          to_bitField0_ |= 0x00000010;
        }
        result.intParam2_ = intParam2_;
        if (((from_bitField0_ & 0x00000100) == 0x00000100)) {
          to_bitField0_ |= 0x00000020;
        }
        result.floatParam_ = floatParam_;
        if (((from_bitField0_ & 0x00000200) == 0x00000200)) {
          to_bitField0_ |= 0x00000040;
        }
        result.floatParam2_ = floatParam2_;
        if (((from_bitField0_ & 0x00000400) == 0x00000400)) {
          to_bitField0_ |= 0x00000080;
        }
        result.stringParam_ = stringParam_;
        if (((from_bitField0_ & 0x00000800) == 0x00000800)) {
          to_bitField0_ |= 0x00000100;
        }
        result.stringParam2_ = stringParam2_;
        if (((from_bitField0_ & 0x00001000) == 0x00001000)) {
          to_bitField0_ |= 0x00000200;
        }
        result.tipTextOverride_ = tipTextOverride_;
        if (((from_bitField0_ & 0x00002000) == 0x00002000)) {
          to_bitField0_ |= 0x00000400;
        }
        result.tipAnnotationOverride_ = tipAnnotationOverride_;
        if (((from_bitField0_ & 0x00004000) == 0x00004000)) {
          to_bitField0_ |= 0x00000800;
        }
        result.panoramaSnippet_ = panoramaSnippet_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ContextualTip) {
          return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ContextualTip)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ContextualTip other) {
        if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ContextualTip.getDefaultInstance()) return this;
        if (other.hasTipId()) {
          setTipId(other.getTipId());
        }
        if (!other.referencedAbilities_.isEmpty()) {
          if (referencedAbilities_.isEmpty()) {
            referencedAbilities_ = other.referencedAbilities_;
            bitField0_ = (bitField0_ & ~0x00000002);
          } else {
            ensureReferencedAbilitiesIsMutable();
            referencedAbilities_.addAll(other.referencedAbilities_);
          }
          onChanged();
        }
        if (!other.referencedUnits_.isEmpty()) {
          if (referencedUnits_.isEmpty()) {
            referencedUnits_ = other.referencedUnits_;
            bitField0_ = (bitField0_ & ~0x00000004);
          } else {
            ensureReferencedUnitsIsMutable();
            referencedUnits_.addAll(other.referencedUnits_);
          }
          onChanged();
        }
        if (!other.panoramaClasses_.isEmpty()) {
          if (panoramaClasses_.isEmpty()) {
            panoramaClasses_ = other.panoramaClasses_;
            bitField0_ = (bitField0_ & ~0x00000008);
          } else {
            ensurePanoramaClassesIsMutable();
            panoramaClasses_.addAll(other.panoramaClasses_);
          }
          onChanged();
        }
        if (other.hasForceAnnotation()) {
          setForceAnnotation(other.getForceAnnotation());
        }
        if (other.hasVariant()) {
          setVariant(other.getVariant());
        }
        if (other.hasIntParam()) {
          setIntParam(other.getIntParam());
        }
        if (other.hasIntParam2()) {
          setIntParam2(other.getIntParam2());
        }
        if (other.hasFloatParam()) {
          setFloatParam(other.getFloatParam());
        }
        if (other.hasFloatParam2()) {
          setFloatParam2(other.getFloatParam2());
        }
        if (other.hasStringParam()) {
          bitField0_ |= 0x00000400;
          stringParam_ = other.stringParam_;
          onChanged();
        }
        if (other.hasStringParam2()) {
          bitField0_ |= 0x00000800;
          stringParam2_ = other.stringParam2_;
          onChanged();
        }
        if (other.hasTipTextOverride()) {
          bitField0_ |= 0x00001000;
          tipTextOverride_ = other.tipTextOverride_;
          onChanged();
        }
        if (other.hasTipAnnotationOverride()) {
          bitField0_ |= 0x00002000;
          tipAnnotationOverride_ = other.tipAnnotationOverride_;
          onChanged();
        }
        if (other.hasPanoramaSnippet()) {
          bitField0_ |= 0x00004000;
          panoramaSnippet_ = other.panoramaSnippet_;
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ContextualTip parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ContextualTip) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int tipId_ ;
      /**
       * optional int32 tip_id = 1;
       */
      public boolean hasTipId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 tip_id = 1;
       */
      public int getTipId() {
        return tipId_;
      }
      /**
       * optional int32 tip_id = 1;
       */
      public Builder setTipId(int value) {
        bitField0_ |= 0x00000001;
        tipId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 tip_id = 1;
       */
      public Builder clearTipId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        tipId_ = 0;
        onChanged();
        return this;
      }

      private com.google.protobuf.LazyStringList referencedAbilities_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      private void ensureReferencedAbilitiesIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          referencedAbilities_ = new com.google.protobuf.LazyStringArrayList(referencedAbilities_);
          bitField0_ |= 0x00000002;
         }
      }
      /**
       * repeated string referenced_abilities = 2;
       */
      public com.google.protobuf.ProtocolStringList
          getReferencedAbilitiesList() {
        return referencedAbilities_.getUnmodifiableView();
      }
      /**
       * repeated string referenced_abilities = 2;
       */
      public int getReferencedAbilitiesCount() {
        return referencedAbilities_.size();
      }
      /**
       * repeated string referenced_abilities = 2;
       */
      public java.lang.String getReferencedAbilities(int index) {
        return referencedAbilities_.get(index);
      }
      /**
       * repeated string referenced_abilities = 2;
       */
      public com.google.protobuf.ByteString
          getReferencedAbilitiesBytes(int index) {
        return referencedAbilities_.getByteString(index);
      }
      /**
       * repeated string referenced_abilities = 2;
       */
      public Builder setReferencedAbilities(
          int index, java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureReferencedAbilitiesIsMutable();
        referencedAbilities_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * repeated string referenced_abilities = 2;
       */
      public Builder addReferencedAbilities(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureReferencedAbilitiesIsMutable();
        referencedAbilities_.add(value);
        onChanged();
        return this;
      }
      /**
       * repeated string referenced_abilities = 2;
       */
      public Builder addAllReferencedAbilities(
          java.lang.Iterable values) {
        ensureReferencedAbilitiesIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, referencedAbilities_);
        onChanged();
        return this;
      }
      /**
       * repeated string referenced_abilities = 2;
       */
      public Builder clearReferencedAbilities() {
        referencedAbilities_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       * repeated string referenced_abilities = 2;
       */
      public Builder addReferencedAbilitiesBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureReferencedAbilitiesIsMutable();
        referencedAbilities_.add(value);
        onChanged();
        return this;
      }

      private com.google.protobuf.LazyStringList referencedUnits_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      private void ensureReferencedUnitsIsMutable() {
        if (!((bitField0_ & 0x00000004) == 0x00000004)) {
          referencedUnits_ = new com.google.protobuf.LazyStringArrayList(referencedUnits_);
          bitField0_ |= 0x00000004;
         }
      }
      /**
       * repeated string referenced_units = 3;
       */
      public com.google.protobuf.ProtocolStringList
          getReferencedUnitsList() {
        return referencedUnits_.getUnmodifiableView();
      }
      /**
       * repeated string referenced_units = 3;
       */
      public int getReferencedUnitsCount() {
        return referencedUnits_.size();
      }
      /**
       * repeated string referenced_units = 3;
       */
      public java.lang.String getReferencedUnits(int index) {
        return referencedUnits_.get(index);
      }
      /**
       * repeated string referenced_units = 3;
       */
      public com.google.protobuf.ByteString
          getReferencedUnitsBytes(int index) {
        return referencedUnits_.getByteString(index);
      }
      /**
       * repeated string referenced_units = 3;
       */
      public Builder setReferencedUnits(
          int index, java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureReferencedUnitsIsMutable();
        referencedUnits_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * repeated string referenced_units = 3;
       */
      public Builder addReferencedUnits(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureReferencedUnitsIsMutable();
        referencedUnits_.add(value);
        onChanged();
        return this;
      }
      /**
       * repeated string referenced_units = 3;
       */
      public Builder addAllReferencedUnits(
          java.lang.Iterable values) {
        ensureReferencedUnitsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, referencedUnits_);
        onChanged();
        return this;
      }
      /**
       * repeated string referenced_units = 3;
       */
      public Builder clearReferencedUnits() {
        referencedUnits_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000004);
        onChanged();
        return this;
      }
      /**
       * repeated string referenced_units = 3;
       */
      public Builder addReferencedUnitsBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureReferencedUnitsIsMutable();
        referencedUnits_.add(value);
        onChanged();
        return this;
      }

      private com.google.protobuf.LazyStringList panoramaClasses_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      private void ensurePanoramaClassesIsMutable() {
        if (!((bitField0_ & 0x00000008) == 0x00000008)) {
          panoramaClasses_ = new com.google.protobuf.LazyStringArrayList(panoramaClasses_);
          bitField0_ |= 0x00000008;
         }
      }
      /**
       * repeated string panorama_classes = 4;
       */
      public com.google.protobuf.ProtocolStringList
          getPanoramaClassesList() {
        return panoramaClasses_.getUnmodifiableView();
      }
      /**
       * repeated string panorama_classes = 4;
       */
      public int getPanoramaClassesCount() {
        return panoramaClasses_.size();
      }
      /**
       * repeated string panorama_classes = 4;
       */
      public java.lang.String getPanoramaClasses(int index) {
        return panoramaClasses_.get(index);
      }
      /**
       * repeated string panorama_classes = 4;
       */
      public com.google.protobuf.ByteString
          getPanoramaClassesBytes(int index) {
        return panoramaClasses_.getByteString(index);
      }
      /**
       * repeated string panorama_classes = 4;
       */
      public Builder setPanoramaClasses(
          int index, java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensurePanoramaClassesIsMutable();
        panoramaClasses_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * repeated string panorama_classes = 4;
       */
      public Builder addPanoramaClasses(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensurePanoramaClassesIsMutable();
        panoramaClasses_.add(value);
        onChanged();
        return this;
      }
      /**
       * repeated string panorama_classes = 4;
       */
      public Builder addAllPanoramaClasses(
          java.lang.Iterable values) {
        ensurePanoramaClassesIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, panoramaClasses_);
        onChanged();
        return this;
      }
      /**
       * repeated string panorama_classes = 4;
       */
      public Builder clearPanoramaClasses() {
        panoramaClasses_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000008);
        onChanged();
        return this;
      }
      /**
       * repeated string panorama_classes = 4;
       */
      public Builder addPanoramaClassesBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensurePanoramaClassesIsMutable();
        panoramaClasses_.add(value);
        onChanged();
        return this;
      }

      private boolean forceAnnotation_ ;
      /**
       * optional bool force_annotation = 5;
       */
      public boolean hasForceAnnotation() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * optional bool force_annotation = 5;
       */
      public boolean getForceAnnotation() {
        return forceAnnotation_;
      }
      /**
       * optional bool force_annotation = 5;
       */
      public Builder setForceAnnotation(boolean value) {
        bitField0_ |= 0x00000010;
        forceAnnotation_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool force_annotation = 5;
       */
      public Builder clearForceAnnotation() {
        bitField0_ = (bitField0_ & ~0x00000010);
        forceAnnotation_ = false;
        onChanged();
        return this;
      }

      private int variant_ ;
      /**
       * optional int32 variant = 6;
       */
      public boolean hasVariant() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * optional int32 variant = 6;
       */
      public int getVariant() {
        return variant_;
      }
      /**
       * optional int32 variant = 6;
       */
      public Builder setVariant(int value) {
        bitField0_ |= 0x00000020;
        variant_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 variant = 6;
       */
      public Builder clearVariant() {
        bitField0_ = (bitField0_ & ~0x00000020);
        variant_ = 0;
        onChanged();
        return this;
      }

      private int intParam_ ;
      /**
       * optional int32 int_param = 7;
       */
      public boolean hasIntParam() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      /**
       * optional int32 int_param = 7;
       */
      public int getIntParam() {
        return intParam_;
      }
      /**
       * optional int32 int_param = 7;
       */
      public Builder setIntParam(int value) {
        bitField0_ |= 0x00000040;
        intParam_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 int_param = 7;
       */
      public Builder clearIntParam() {
        bitField0_ = (bitField0_ & ~0x00000040);
        intParam_ = 0;
        onChanged();
        return this;
      }

      private int intParam2_ ;
      /**
       * optional int32 int_param2 = 8;
       */
      public boolean hasIntParam2() {
        return ((bitField0_ & 0x00000080) == 0x00000080);
      }
      /**
       * optional int32 int_param2 = 8;
       */
      public int getIntParam2() {
        return intParam2_;
      }
      /**
       * optional int32 int_param2 = 8;
       */
      public Builder setIntParam2(int value) {
        bitField0_ |= 0x00000080;
        intParam2_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 int_param2 = 8;
       */
      public Builder clearIntParam2() {
        bitField0_ = (bitField0_ & ~0x00000080);
        intParam2_ = 0;
        onChanged();
        return this;
      }

      private float floatParam_ ;
      /**
       * optional float float_param = 9;
       */
      public boolean hasFloatParam() {
        return ((bitField0_ & 0x00000100) == 0x00000100);
      }
      /**
       * optional float float_param = 9;
       */
      public float getFloatParam() {
        return floatParam_;
      }
      /**
       * optional float float_param = 9;
       */
      public Builder setFloatParam(float value) {
        bitField0_ |= 0x00000100;
        floatParam_ = value;
        onChanged();
        return this;
      }
      /**
       * optional float float_param = 9;
       */
      public Builder clearFloatParam() {
        bitField0_ = (bitField0_ & ~0x00000100);
        floatParam_ = 0F;
        onChanged();
        return this;
      }

      private float floatParam2_ ;
      /**
       * optional float float_param2 = 10;
       */
      public boolean hasFloatParam2() {
        return ((bitField0_ & 0x00000200) == 0x00000200);
      }
      /**
       * optional float float_param2 = 10;
       */
      public float getFloatParam2() {
        return floatParam2_;
      }
      /**
       * optional float float_param2 = 10;
       */
      public Builder setFloatParam2(float value) {
        bitField0_ |= 0x00000200;
        floatParam2_ = value;
        onChanged();
        return this;
      }
      /**
       * optional float float_param2 = 10;
       */
      public Builder clearFloatParam2() {
        bitField0_ = (bitField0_ & ~0x00000200);
        floatParam2_ = 0F;
        onChanged();
        return this;
      }

      private java.lang.Object stringParam_ = "";
      /**
       * optional string string_param = 11;
       */
      public boolean hasStringParam() {
        return ((bitField0_ & 0x00000400) == 0x00000400);
      }
      /**
       * optional string string_param = 11;
       */
      public java.lang.String getStringParam() {
        java.lang.Object ref = stringParam_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            stringParam_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string string_param = 11;
       */
      public com.google.protobuf.ByteString
          getStringParamBytes() {
        java.lang.Object ref = stringParam_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          stringParam_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string string_param = 11;
       */
      public Builder setStringParam(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000400;
        stringParam_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string string_param = 11;
       */
      public Builder clearStringParam() {
        bitField0_ = (bitField0_ & ~0x00000400);
        stringParam_ = getDefaultInstance().getStringParam();
        onChanged();
        return this;
      }
      /**
       * optional string string_param = 11;
       */
      public Builder setStringParamBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000400;
        stringParam_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object stringParam2_ = "";
      /**
       * optional string string_param2 = 12;
       */
      public boolean hasStringParam2() {
        return ((bitField0_ & 0x00000800) == 0x00000800);
      }
      /**
       * optional string string_param2 = 12;
       */
      public java.lang.String getStringParam2() {
        java.lang.Object ref = stringParam2_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            stringParam2_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string string_param2 = 12;
       */
      public com.google.protobuf.ByteString
          getStringParam2Bytes() {
        java.lang.Object ref = stringParam2_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          stringParam2_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string string_param2 = 12;
       */
      public Builder setStringParam2(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000800;
        stringParam2_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string string_param2 = 12;
       */
      public Builder clearStringParam2() {
        bitField0_ = (bitField0_ & ~0x00000800);
        stringParam2_ = getDefaultInstance().getStringParam2();
        onChanged();
        return this;
      }
      /**
       * optional string string_param2 = 12;
       */
      public Builder setStringParam2Bytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000800;
        stringParam2_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object tipTextOverride_ = "";
      /**
       * optional string tip_text_override = 13;
       */
      public boolean hasTipTextOverride() {
        return ((bitField0_ & 0x00001000) == 0x00001000);
      }
      /**
       * optional string tip_text_override = 13;
       */
      public java.lang.String getTipTextOverride() {
        java.lang.Object ref = tipTextOverride_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            tipTextOverride_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string tip_text_override = 13;
       */
      public com.google.protobuf.ByteString
          getTipTextOverrideBytes() {
        java.lang.Object ref = tipTextOverride_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          tipTextOverride_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string tip_text_override = 13;
       */
      public Builder setTipTextOverride(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00001000;
        tipTextOverride_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string tip_text_override = 13;
       */
      public Builder clearTipTextOverride() {
        bitField0_ = (bitField0_ & ~0x00001000);
        tipTextOverride_ = getDefaultInstance().getTipTextOverride();
        onChanged();
        return this;
      }
      /**
       * optional string tip_text_override = 13;
       */
      public Builder setTipTextOverrideBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00001000;
        tipTextOverride_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object tipAnnotationOverride_ = "";
      /**
       * optional string tip_annotation_override = 14;
       */
      public boolean hasTipAnnotationOverride() {
        return ((bitField0_ & 0x00002000) == 0x00002000);
      }
      /**
       * optional string tip_annotation_override = 14;
       */
      public java.lang.String getTipAnnotationOverride() {
        java.lang.Object ref = tipAnnotationOverride_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            tipAnnotationOverride_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string tip_annotation_override = 14;
       */
      public com.google.protobuf.ByteString
          getTipAnnotationOverrideBytes() {
        java.lang.Object ref = tipAnnotationOverride_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          tipAnnotationOverride_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string tip_annotation_override = 14;
       */
      public Builder setTipAnnotationOverride(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00002000;
        tipAnnotationOverride_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string tip_annotation_override = 14;
       */
      public Builder clearTipAnnotationOverride() {
        bitField0_ = (bitField0_ & ~0x00002000);
        tipAnnotationOverride_ = getDefaultInstance().getTipAnnotationOverride();
        onChanged();
        return this;
      }
      /**
       * optional string tip_annotation_override = 14;
       */
      public Builder setTipAnnotationOverrideBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00002000;
        tipAnnotationOverride_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object panoramaSnippet_ = "";
      /**
       * optional string panorama_snippet = 15;
       */
      public boolean hasPanoramaSnippet() {
        return ((bitField0_ & 0x00004000) == 0x00004000);
      }
      /**
       * optional string panorama_snippet = 15;
       */
      public java.lang.String getPanoramaSnippet() {
        java.lang.Object ref = panoramaSnippet_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            panoramaSnippet_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string panorama_snippet = 15;
       */
      public com.google.protobuf.ByteString
          getPanoramaSnippetBytes() {
        java.lang.Object ref = panoramaSnippet_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          panoramaSnippet_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string panorama_snippet = 15;
       */
      public Builder setPanoramaSnippet(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00004000;
        panoramaSnippet_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string panorama_snippet = 15;
       */
      public Builder clearPanoramaSnippet() {
        bitField0_ = (bitField0_ & ~0x00004000);
        panoramaSnippet_ = getDefaultInstance().getPanoramaSnippet();
        onChanged();
        return this;
      }
      /**
       * optional string panorama_snippet = 15;
       */
      public Builder setPanoramaSnippetBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00004000;
        panoramaSnippet_ = value;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_ContextualTip)
    }

    static {
      defaultInstance = new CDOTAUserMsg_ContextualTip(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_ContextualTip)
  }

  public interface CDOTAUserMsg_ChatMessageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_ChatMessage)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional int32 source_player_id = 1;
     */
    boolean hasSourcePlayerId();
    /**
     * optional int32 source_player_id = 1;
     */
    int getSourcePlayerId();

    /**
     * optional uint32 channel_type = 2;
     */
    boolean hasChannelType();
    /**
     * optional uint32 channel_type = 2;
     */
    int getChannelType();

    /**
     * optional string message_text = 3;
     */
    boolean hasMessageText();
    /**
     * optional string message_text = 3;
     */
    java.lang.String getMessageText();
    /**
     * optional string message_text = 3;
     */
    com.google.protobuf.ByteString
        getMessageTextBytes();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_ChatMessage}
   */
  public static final class CDOTAUserMsg_ChatMessage extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_ChatMessage)
      CDOTAUserMsg_ChatMessageOrBuilder {
    // Use CDOTAUserMsg_ChatMessage.newBuilder() to construct.
    private CDOTAUserMsg_ChatMessage(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_ChatMessage(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_ChatMessage defaultInstance;
    public static CDOTAUserMsg_ChatMessage getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_ChatMessage getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_ChatMessage(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              sourcePlayerId_ = input.readInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              channelType_ = input.readUInt32();
              break;
            }
            case 26: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000004;
              messageText_ = bs;
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ChatMessage_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ChatMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ChatMessage.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ChatMessage.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_ChatMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_ChatMessage(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int SOURCE_PLAYER_ID_FIELD_NUMBER = 1;
    private int sourcePlayerId_;
    /**
     * optional int32 source_player_id = 1;
     */
    public boolean hasSourcePlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 source_player_id = 1;
     */
    public int getSourcePlayerId() {
      return sourcePlayerId_;
    }

    public static final int CHANNEL_TYPE_FIELD_NUMBER = 2;
    private int channelType_;
    /**
     * optional uint32 channel_type = 2;
     */
    public boolean hasChannelType() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional uint32 channel_type = 2;
     */
    public int getChannelType() {
      return channelType_;
    }

    public static final int MESSAGE_TEXT_FIELD_NUMBER = 3;
    private java.lang.Object messageText_;
    /**
     * optional string message_text = 3;
     */
    public boolean hasMessageText() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional string message_text = 3;
     */
    public java.lang.String getMessageText() {
      java.lang.Object ref = messageText_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          messageText_ = s;
        }
        return s;
      }
    }
    /**
     * optional string message_text = 3;
     */
    public com.google.protobuf.ByteString
        getMessageTextBytes() {
      java.lang.Object ref = messageText_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        messageText_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private void initFields() {
      sourcePlayerId_ = 0;
      channelType_ = 0;
      messageText_ = "";
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, sourcePlayerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, channelType_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBytes(3, getMessageTextBytes());
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, sourcePlayerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, channelType_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(3, getMessageTextBytes());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ChatMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ChatMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ChatMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ChatMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ChatMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ChatMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ChatMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ChatMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ChatMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ChatMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ChatMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_ChatMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_ChatMessage)
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ChatMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ChatMessage_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ChatMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ChatMessage.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ChatMessage.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ChatMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        sourcePlayerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        channelType_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        messageText_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CDOTAUserMsg_ChatMessage_descriptor;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ChatMessage getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ChatMessage.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ChatMessage build() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ChatMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ChatMessage buildPartial() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ChatMessage result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ChatMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.sourcePlayerId_ = sourcePlayerId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.channelType_ = channelType_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.messageText_ = messageText_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ChatMessage) {
          return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ChatMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ChatMessage other) {
        if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ChatMessage.getDefaultInstance()) return this;
        if (other.hasSourcePlayerId()) {
          setSourcePlayerId(other.getSourcePlayerId());
        }
        if (other.hasChannelType()) {
          setChannelType(other.getChannelType());
        }
        if (other.hasMessageText()) {
          bitField0_ |= 0x00000004;
          messageText_ = other.messageText_;
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ChatMessage parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CDOTAUserMsg_ChatMessage) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int sourcePlayerId_ ;
      /**
       * optional int32 source_player_id = 1;
       */
      public boolean hasSourcePlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 source_player_id = 1;
       */
      public int getSourcePlayerId() {
        return sourcePlayerId_;
      }
      /**
       * optional int32 source_player_id = 1;
       */
      public Builder setSourcePlayerId(int value) {
        bitField0_ |= 0x00000001;
        sourcePlayerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 source_player_id = 1;
       */
      public Builder clearSourcePlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        sourcePlayerId_ = 0;
        onChanged();
        return this;
      }

      private int channelType_ ;
      /**
       * optional uint32 channel_type = 2;
       */
      public boolean hasChannelType() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional uint32 channel_type = 2;
       */
      public int getChannelType() {
        return channelType_;
      }
      /**
       * optional uint32 channel_type = 2;
       */
      public Builder setChannelType(int value) {
        bitField0_ |= 0x00000002;
        channelType_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 channel_type = 2;
       */
      public Builder clearChannelType() {
        bitField0_ = (bitField0_ & ~0x00000002);
        channelType_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object messageText_ = "";
      /**
       * optional string message_text = 3;
       */
      public boolean hasMessageText() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional string message_text = 3;
       */
      public java.lang.String getMessageText() {
        java.lang.Object ref = messageText_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            messageText_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string message_text = 3;
       */
      public com.google.protobuf.ByteString
          getMessageTextBytes() {
        java.lang.Object ref = messageText_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          messageText_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string message_text = 3;
       */
      public Builder setMessageText(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        messageText_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string message_text = 3;
       */
      public Builder clearMessageText() {
        bitField0_ = (bitField0_ & ~0x00000004);
        messageText_ = getDefaultInstance().getMessageText();
        onChanged();
        return this;
      }
      /**
       * optional string message_text = 3;
       */
      public Builder setMessageTextBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        messageText_ = value;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_ChatMessage)
    }

    static {
      defaultInstance = new CDOTAUserMsg_ChatMessage(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_ChatMessage)
  }

  public interface CMsgDOTACombatLogEntryOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CMsgDOTACombatLogEntry)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional .DOTA_COMBATLOG_TYPES type = 1 [default = DOTA_COMBATLOG_DAMAGE];
     */
    boolean hasType();
    /**
     * optional .DOTA_COMBATLOG_TYPES type = 1 [default = DOTA_COMBATLOG_DAMAGE];
     */
    skadistats.clarity.wire.common.proto.DotaUserMessages.DOTA_COMBATLOG_TYPES getType();

    /**
     * optional uint32 target_name = 2;
     */
    boolean hasTargetName();
    /**
     * optional uint32 target_name = 2;
     */
    int getTargetName();

    /**
     * optional uint32 target_source_name = 3;
     */
    boolean hasTargetSourceName();
    /**
     * optional uint32 target_source_name = 3;
     */
    int getTargetSourceName();

    /**
     * optional uint32 attacker_name = 4;
     */
    boolean hasAttackerName();
    /**
     * optional uint32 attacker_name = 4;
     */
    int getAttackerName();

    /**
     * optional uint32 damage_source_name = 5;
     */
    boolean hasDamageSourceName();
    /**
     * optional uint32 damage_source_name = 5;
     */
    int getDamageSourceName();

    /**
     * optional uint32 inflictor_name = 6;
     */
    boolean hasInflictorName();
    /**
     * optional uint32 inflictor_name = 6;
     */
    int getInflictorName();

    /**
     * optional bool is_attacker_illusion = 7;
     */
    boolean hasIsAttackerIllusion();
    /**
     * optional bool is_attacker_illusion = 7;
     */
    boolean getIsAttackerIllusion();

    /**
     * optional bool is_attacker_hero = 8;
     */
    boolean hasIsAttackerHero();
    /**
     * optional bool is_attacker_hero = 8;
     */
    boolean getIsAttackerHero();

    /**
     * optional bool is_target_illusion = 9;
     */
    boolean hasIsTargetIllusion();
    /**
     * optional bool is_target_illusion = 9;
     */
    boolean getIsTargetIllusion();

    /**
     * optional bool is_target_hero = 10;
     */
    boolean hasIsTargetHero();
    /**
     * optional bool is_target_hero = 10;
     */
    boolean getIsTargetHero();

    /**
     * optional bool is_visible_radiant = 11;
     */
    boolean hasIsVisibleRadiant();
    /**
     * optional bool is_visible_radiant = 11;
     */
    boolean getIsVisibleRadiant();

    /**
     * optional bool is_visible_dire = 12;
     */
    boolean hasIsVisibleDire();
    /**
     * optional bool is_visible_dire = 12;
     */
    boolean getIsVisibleDire();

    /**
     * optional uint32 value = 13;
     */
    boolean hasValue();
    /**
     * optional uint32 value = 13;
     */
    int getValue();

    /**
     * optional int32 health = 14;
     */
    boolean hasHealth();
    /**
     * optional int32 health = 14;
     */
    int getHealth();

    /**
     * optional float timestamp = 15;
     */
    boolean hasTimestamp();
    /**
     * optional float timestamp = 15;
     */
    float getTimestamp();

    /**
     * optional float stun_duration = 16;
     */
    boolean hasStunDuration();
    /**
     * optional float stun_duration = 16;
     */
    float getStunDuration();

    /**
     * optional float slow_duration = 17;
     */
    boolean hasSlowDuration();
    /**
     * optional float slow_duration = 17;
     */
    float getSlowDuration();

    /**
     * optional bool is_ability_toggle_on = 18;
     */
    boolean hasIsAbilityToggleOn();
    /**
     * optional bool is_ability_toggle_on = 18;
     */
    boolean getIsAbilityToggleOn();

    /**
     * optional bool is_ability_toggle_off = 19;
     */
    boolean hasIsAbilityToggleOff();
    /**
     * optional bool is_ability_toggle_off = 19;
     */
    boolean getIsAbilityToggleOff();

    /**
     * optional uint32 ability_level = 20;
     */
    boolean hasAbilityLevel();
    /**
     * optional uint32 ability_level = 20;
     */
    int getAbilityLevel();

    /**
     * optional float location_x = 21;
     */
    boolean hasLocationX();
    /**
     * optional float location_x = 21;
     */
    float getLocationX();

    /**
     * optional float location_y = 22;
     */
    boolean hasLocationY();
    /**
     * optional float location_y = 22;
     */
    float getLocationY();

    /**
     * optional uint32 gold_reason = 23;
     */
    boolean hasGoldReason();
    /**
     * optional uint32 gold_reason = 23;
     */
    int getGoldReason();

    /**
     * optional float timestamp_raw = 24;
     */
    boolean hasTimestampRaw();
    /**
     * optional float timestamp_raw = 24;
     */
    float getTimestampRaw();

    /**
     * optional float modifier_duration = 25;
     */
    boolean hasModifierDuration();
    /**
     * optional float modifier_duration = 25;
     */
    float getModifierDuration();

    /**
     * optional uint32 xp_reason = 26;
     */
    boolean hasXpReason();
    /**
     * optional uint32 xp_reason = 26;
     */
    int getXpReason();

    /**
     * optional uint32 last_hits = 27;
     */
    boolean hasLastHits();
    /**
     * optional uint32 last_hits = 27;
     */
    int getLastHits();

    /**
     * optional uint32 attacker_team = 28;
     */
    boolean hasAttackerTeam();
    /**
     * optional uint32 attacker_team = 28;
     */
    int getAttackerTeam();

    /**
     * optional uint32 target_team = 29;
     */
    boolean hasTargetTeam();
    /**
     * optional uint32 target_team = 29;
     */
    int getTargetTeam();

    /**
     * optional uint32 obs_wards_placed = 30;
     */
    boolean hasObsWardsPlaced();
    /**
     * optional uint32 obs_wards_placed = 30;
     */
    int getObsWardsPlaced();

    /**
     * optional uint32 assist_player0 = 31;
     */
    boolean hasAssistPlayer0();
    /**
     * optional uint32 assist_player0 = 31;
     */
    int getAssistPlayer0();

    /**
     * optional uint32 assist_player1 = 32;
     */
    boolean hasAssistPlayer1();
    /**
     * optional uint32 assist_player1 = 32;
     */
    int getAssistPlayer1();

    /**
     * optional uint32 assist_player2 = 33;
     */
    boolean hasAssistPlayer2();
    /**
     * optional uint32 assist_player2 = 33;
     */
    int getAssistPlayer2();

    /**
     * optional uint32 assist_player3 = 34;
     */
    boolean hasAssistPlayer3();
    /**
     * optional uint32 assist_player3 = 34;
     */
    int getAssistPlayer3();

    /**
     * optional uint32 stack_count = 35;
     */
    boolean hasStackCount();
    /**
     * optional uint32 stack_count = 35;
     */
    int getStackCount();

    /**
     * optional bool hidden_modifier = 36;
     */
    boolean hasHiddenModifier();
    /**
     * optional bool hidden_modifier = 36;
     */
    boolean getHiddenModifier();

    /**
     * optional bool is_target_building = 37;
     */
    boolean hasIsTargetBuilding();
    /**
     * optional bool is_target_building = 37;
     */
    boolean getIsTargetBuilding();

    /**
     * optional uint32 neutral_camp_type = 38;
     */
    boolean hasNeutralCampType();
    /**
     * optional uint32 neutral_camp_type = 38;
     */
    int getNeutralCampType();

    /**
     * optional uint32 rune_type = 39;
     */
    boolean hasRuneType();
    /**
     * optional uint32 rune_type = 39;
     */
    int getRuneType();

    /**
     * repeated uint32 assist_players = 40;
     */
    java.util.List getAssistPlayersList();
    /**
     * repeated uint32 assist_players = 40;
     */
    int getAssistPlayersCount();
    /**
     * repeated uint32 assist_players = 40;
     */
    int getAssistPlayers(int index);

    /**
     * optional bool is_heal_save = 41;
     */
    boolean hasIsHealSave();
    /**
     * optional bool is_heal_save = 41;
     */
    boolean getIsHealSave();

    /**
     * optional bool is_ultimate_ability = 42;
     */
    boolean hasIsUltimateAbility();
    /**
     * optional bool is_ultimate_ability = 42;
     */
    boolean getIsUltimateAbility();

    /**
     * optional uint32 attacker_hero_level = 43;
     */
    boolean hasAttackerHeroLevel();
    /**
     * optional uint32 attacker_hero_level = 43;
     */
    int getAttackerHeroLevel();

    /**
     * optional uint32 target_hero_level = 44;
     */
    boolean hasTargetHeroLevel();
    /**
     * optional uint32 target_hero_level = 44;
     */
    int getTargetHeroLevel();

    /**
     * optional uint32 xpm = 45;
     */
    boolean hasXpm();
    /**
     * optional uint32 xpm = 45;
     */
    int getXpm();

    /**
     * optional uint32 gpm = 46;
     */
    boolean hasGpm();
    /**
     * optional uint32 gpm = 46;
     */
    int getGpm();

    /**
     * optional uint32 event_location = 47;
     */
    boolean hasEventLocation();
    /**
     * optional uint32 event_location = 47;
     */
    int getEventLocation();

    /**
     * optional bool target_is_self = 48;
     */
    boolean hasTargetIsSelf();
    /**
     * optional bool target_is_self = 48;
     */
    boolean getTargetIsSelf();

    /**
     * optional uint32 damage_type = 49;
     */
    boolean hasDamageType();
    /**
     * optional uint32 damage_type = 49;
     */
    int getDamageType();

    /**
     * optional bool invisibility_modifier = 50;
     */
    boolean hasInvisibilityModifier();
    /**
     * optional bool invisibility_modifier = 50;
     */
    boolean getInvisibilityModifier();

    /**
     * optional uint32 damage_category = 51;
     */
    boolean hasDamageCategory();
    /**
     * optional uint32 damage_category = 51;
     */
    int getDamageCategory();

    /**
     * optional uint32 networth = 52;
     */
    boolean hasNetworth();
    /**
     * optional uint32 networth = 52;
     */
    int getNetworth();

    /**
     * optional uint32 building_type = 53;
     */
    boolean hasBuildingType();
    /**
     * optional uint32 building_type = 53;
     */
    int getBuildingType();

    /**
     * optional float modifier_elapsed_duration = 54;
     */
    boolean hasModifierElapsedDuration();
    /**
     * optional float modifier_elapsed_duration = 54;
     */
    float getModifierElapsedDuration();

    /**
     * optional bool silence_modifier = 55;
     */
    boolean hasSilenceModifier();
    /**
     * optional bool silence_modifier = 55;
     */
    boolean getSilenceModifier();

    /**
     * optional bool heal_from_lifesteal = 56;
     */
    boolean hasHealFromLifesteal();
    /**
     * optional bool heal_from_lifesteal = 56;
     */
    boolean getHealFromLifesteal();

    /**
     * optional bool modifier_purged = 57;
     */
    boolean hasModifierPurged();
    /**
     * optional bool modifier_purged = 57;
     */
    boolean getModifierPurged();

    /**
     * optional bool spell_evaded = 58;
     */
    boolean hasSpellEvaded();
    /**
     * optional bool spell_evaded = 58;
     */
    boolean getSpellEvaded();

    /**
     * optional bool motion_controller_modifier = 59;
     */
    boolean hasMotionControllerModifier();
    /**
     * optional bool motion_controller_modifier = 59;
     */
    boolean getMotionControllerModifier();

    /**
     * optional bool long_range_kill = 60;
     */
    boolean hasLongRangeKill();
    /**
     * optional bool long_range_kill = 60;
     */
    boolean getLongRangeKill();

    /**
     * optional uint32 modifier_purge_ability = 61;
     */
    boolean hasModifierPurgeAbility();
    /**
     * optional uint32 modifier_purge_ability = 61;
     */
    int getModifierPurgeAbility();

    /**
     * optional uint32 modifier_purge_npc = 62;
     */
    boolean hasModifierPurgeNpc();
    /**
     * optional uint32 modifier_purge_npc = 62;
     */
    int getModifierPurgeNpc();

    /**
     * optional bool root_modifier = 63;
     */
    boolean hasRootModifier();
    /**
     * optional bool root_modifier = 63;
     */
    boolean getRootModifier();

    /**
     * optional uint32 total_unit_death_count = 64;
     */
    boolean hasTotalUnitDeathCount();
    /**
     * optional uint32 total_unit_death_count = 64;
     */
    int getTotalUnitDeathCount();

    /**
     * optional bool aura_modifier = 65;
     */
    boolean hasAuraModifier();
    /**
     * optional bool aura_modifier = 65;
     */
    boolean getAuraModifier();

    /**
     * optional bool armor_debuff_modifier = 66;
     */
    boolean hasArmorDebuffModifier();
    /**
     * optional bool armor_debuff_modifier = 66;
     */
    boolean getArmorDebuffModifier();

    /**
     * optional bool no_physical_damage_modifier = 67;
     */
    boolean hasNoPhysicalDamageModifier();
    /**
     * optional bool no_physical_damage_modifier = 67;
     */
    boolean getNoPhysicalDamageModifier();

    /**
     * optional uint32 modifier_ability = 68;
     */
    boolean hasModifierAbility();
    /**
     * optional uint32 modifier_ability = 68;
     */
    int getModifierAbility();

    /**
     * optional bool modifier_hidden = 69;
     */
    boolean hasModifierHidden();
    /**
     * optional bool modifier_hidden = 69;
     */
    boolean getModifierHidden();

    /**
     * optional bool inflictor_is_stolen_ability = 70;
     */
    boolean hasInflictorIsStolenAbility();
    /**
     * optional bool inflictor_is_stolen_ability = 70;
     */
    boolean getInflictorIsStolenAbility();

    /**
     * optional uint32 kill_eater_event = 71;
     */
    boolean hasKillEaterEvent();
    /**
     * optional uint32 kill_eater_event = 71;
     */
    int getKillEaterEvent();

    /**
     * optional uint32 unit_status_label = 72;
     */
    boolean hasUnitStatusLabel();
    /**
     * optional uint32 unit_status_label = 72;
     */
    int getUnitStatusLabel();

    /**
     * optional bool spell_generated_attack = 73;
     */
    boolean hasSpellGeneratedAttack();
    /**
     * optional bool spell_generated_attack = 73;
     */
    boolean getSpellGeneratedAttack();

    /**
     * optional bool at_night_time = 74;
     */
    boolean hasAtNightTime();
    /**
     * optional bool at_night_time = 74;
     */
    boolean getAtNightTime();

    /**
     * optional bool attacker_has_scepter = 75;
     */
    boolean hasAttackerHasScepter();
    /**
     * optional bool attacker_has_scepter = 75;
     */
    boolean getAttackerHasScepter();
  }
  /**
   * Protobuf type {@code CMsgDOTACombatLogEntry}
   */
  public static final class CMsgDOTACombatLogEntry extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CMsgDOTACombatLogEntry)
      CMsgDOTACombatLogEntryOrBuilder {
    // Use CMsgDOTACombatLogEntry.newBuilder() to construct.
    private CMsgDOTACombatLogEntry(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CMsgDOTACombatLogEntry(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CMsgDOTACombatLogEntry defaultInstance;
    public static CMsgDOTACombatLogEntry getDefaultInstance() {
      return defaultInstance;
    }

    public CMsgDOTACombatLogEntry getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CMsgDOTACombatLogEntry(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      int mutable_bitField1_ = 0;
      int mutable_bitField2_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              int rawValue = input.readEnum();
              skadistats.clarity.wire.common.proto.DotaUserMessages.DOTA_COMBATLOG_TYPES value = skadistats.clarity.wire.common.proto.DotaUserMessages.DOTA_COMBATLOG_TYPES.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(1, rawValue);
              } else {
                bitField0_ |= 0x00000001;
                type_ = value;
              }
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              targetName_ = input.readUInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              targetSourceName_ = input.readUInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              attackerName_ = input.readUInt32();
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              damageSourceName_ = input.readUInt32();
              break;
            }
            case 48: {
              bitField0_ |= 0x00000020;
              inflictorName_ = input.readUInt32();
              break;
            }
            case 56: {
              bitField0_ |= 0x00000040;
              isAttackerIllusion_ = input.readBool();
              break;
            }
            case 64: {
              bitField0_ |= 0x00000080;
              isAttackerHero_ = input.readBool();
              break;
            }
            case 72: {
              bitField0_ |= 0x00000100;
              isTargetIllusion_ = input.readBool();
              break;
            }
            case 80: {
              bitField0_ |= 0x00000200;
              isTargetHero_ = input.readBool();
              break;
            }
            case 88: {
              bitField0_ |= 0x00000400;
              isVisibleRadiant_ = input.readBool();
              break;
            }
            case 96: {
              bitField0_ |= 0x00000800;
              isVisibleDire_ = input.readBool();
              break;
            }
            case 104: {
              bitField0_ |= 0x00001000;
              value_ = input.readUInt32();
              break;
            }
            case 112: {
              bitField0_ |= 0x00002000;
              health_ = input.readInt32();
              break;
            }
            case 125: {
              bitField0_ |= 0x00004000;
              timestamp_ = input.readFloat();
              break;
            }
            case 133: {
              bitField0_ |= 0x00008000;
              stunDuration_ = input.readFloat();
              break;
            }
            case 141: {
              bitField0_ |= 0x00010000;
              slowDuration_ = input.readFloat();
              break;
            }
            case 144: {
              bitField0_ |= 0x00020000;
              isAbilityToggleOn_ = input.readBool();
              break;
            }
            case 152: {
              bitField0_ |= 0x00040000;
              isAbilityToggleOff_ = input.readBool();
              break;
            }
            case 160: {
              bitField0_ |= 0x00080000;
              abilityLevel_ = input.readUInt32();
              break;
            }
            case 173: {
              bitField0_ |= 0x00100000;
              locationX_ = input.readFloat();
              break;
            }
            case 181: {
              bitField0_ |= 0x00200000;
              locationY_ = input.readFloat();
              break;
            }
            case 184: {
              bitField0_ |= 0x00400000;
              goldReason_ = input.readUInt32();
              break;
            }
            case 197: {
              bitField0_ |= 0x00800000;
              timestampRaw_ = input.readFloat();
              break;
            }
            case 205: {
              bitField0_ |= 0x01000000;
              modifierDuration_ = input.readFloat();
              break;
            }
            case 208: {
              bitField0_ |= 0x02000000;
              xpReason_ = input.readUInt32();
              break;
            }
            case 216: {
              bitField0_ |= 0x04000000;
              lastHits_ = input.readUInt32();
              break;
            }
            case 224: {
              bitField0_ |= 0x08000000;
              attackerTeam_ = input.readUInt32();
              break;
            }
            case 232: {
              bitField0_ |= 0x10000000;
              targetTeam_ = input.readUInt32();
              break;
            }
            case 240: {
              bitField0_ |= 0x20000000;
              obsWardsPlaced_ = input.readUInt32();
              break;
            }
            case 248: {
              bitField0_ |= 0x40000000;
              assistPlayer0_ = input.readUInt32();
              break;
            }
            case 256: {
              bitField0_ |= 0x80000000;
              assistPlayer1_ = input.readUInt32();
              break;
            }
            case 264: {
              bitField1_ |= 0x00000001;
              assistPlayer2_ = input.readUInt32();
              break;
            }
            case 272: {
              bitField1_ |= 0x00000002;
              assistPlayer3_ = input.readUInt32();
              break;
            }
            case 280: {
              bitField1_ |= 0x00000004;
              stackCount_ = input.readUInt32();
              break;
            }
            case 288: {
              bitField1_ |= 0x00000008;
              hiddenModifier_ = input.readBool();
              break;
            }
            case 296: {
              bitField1_ |= 0x00000010;
              isTargetBuilding_ = input.readBool();
              break;
            }
            case 304: {
              bitField1_ |= 0x00000020;
              neutralCampType_ = input.readUInt32();
              break;
            }
            case 312: {
              bitField1_ |= 0x00000040;
              runeType_ = input.readUInt32();
              break;
            }
            case 320: {
              if (!((mutable_bitField1_ & 0x00000080) == 0x00000080)) {
                assistPlayers_ = new java.util.ArrayList();
                mutable_bitField1_ |= 0x00000080;
              }
              assistPlayers_.add(input.readUInt32());
              break;
            }
            case 322: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              if (!((mutable_bitField1_ & 0x00000080) == 0x00000080) && input.getBytesUntilLimit() > 0) {
                assistPlayers_ = new java.util.ArrayList();
                mutable_bitField1_ |= 0x00000080;
              }
              while (input.getBytesUntilLimit() > 0) {
                assistPlayers_.add(input.readUInt32());
              }
              input.popLimit(limit);
              break;
            }
            case 328: {
              bitField1_ |= 0x00000080;
              isHealSave_ = input.readBool();
              break;
            }
            case 336: {
              bitField1_ |= 0x00000100;
              isUltimateAbility_ = input.readBool();
              break;
            }
            case 344: {
              bitField1_ |= 0x00000200;
              attackerHeroLevel_ = input.readUInt32();
              break;
            }
            case 352: {
              bitField1_ |= 0x00000400;
              targetHeroLevel_ = input.readUInt32();
              break;
            }
            case 360: {
              bitField1_ |= 0x00000800;
              xpm_ = input.readUInt32();
              break;
            }
            case 368: {
              bitField1_ |= 0x00001000;
              gpm_ = input.readUInt32();
              break;
            }
            case 376: {
              bitField1_ |= 0x00002000;
              eventLocation_ = input.readUInt32();
              break;
            }
            case 384: {
              bitField1_ |= 0x00004000;
              targetIsSelf_ = input.readBool();
              break;
            }
            case 392: {
              bitField1_ |= 0x00008000;
              damageType_ = input.readUInt32();
              break;
            }
            case 400: {
              bitField1_ |= 0x00010000;
              invisibilityModifier_ = input.readBool();
              break;
            }
            case 408: {
              bitField1_ |= 0x00020000;
              damageCategory_ = input.readUInt32();
              break;
            }
            case 416: {
              bitField1_ |= 0x00040000;
              networth_ = input.readUInt32();
              break;
            }
            case 424: {
              bitField1_ |= 0x00080000;
              buildingType_ = input.readUInt32();
              break;
            }
            case 437: {
              bitField1_ |= 0x00100000;
              modifierElapsedDuration_ = input.readFloat();
              break;
            }
            case 440: {
              bitField1_ |= 0x00200000;
              silenceModifier_ = input.readBool();
              break;
            }
            case 448: {
              bitField1_ |= 0x00400000;
              healFromLifesteal_ = input.readBool();
              break;
            }
            case 456: {
              bitField1_ |= 0x00800000;
              modifierPurged_ = input.readBool();
              break;
            }
            case 464: {
              bitField1_ |= 0x01000000;
              spellEvaded_ = input.readBool();
              break;
            }
            case 472: {
              bitField1_ |= 0x02000000;
              motionControllerModifier_ = input.readBool();
              break;
            }
            case 480: {
              bitField1_ |= 0x04000000;
              longRangeKill_ = input.readBool();
              break;
            }
            case 488: {
              bitField1_ |= 0x08000000;
              modifierPurgeAbility_ = input.readUInt32();
              break;
            }
            case 496: {
              bitField1_ |= 0x10000000;
              modifierPurgeNpc_ = input.readUInt32();
              break;
            }
            case 504: {
              bitField1_ |= 0x20000000;
              rootModifier_ = input.readBool();
              break;
            }
            case 512: {
              bitField1_ |= 0x40000000;
              totalUnitDeathCount_ = input.readUInt32();
              break;
            }
            case 520: {
              bitField1_ |= 0x80000000;
              auraModifier_ = input.readBool();
              break;
            }
            case 528: {
              bitField2_ |= 0x00000001;
              armorDebuffModifier_ = input.readBool();
              break;
            }
            case 536: {
              bitField2_ |= 0x00000002;
              noPhysicalDamageModifier_ = input.readBool();
              break;
            }
            case 544: {
              bitField2_ |= 0x00000004;
              modifierAbility_ = input.readUInt32();
              break;
            }
            case 552: {
              bitField2_ |= 0x00000008;
              modifierHidden_ = input.readBool();
              break;
            }
            case 560: {
              bitField2_ |= 0x00000010;
              inflictorIsStolenAbility_ = input.readBool();
              break;
            }
            case 568: {
              bitField2_ |= 0x00000020;
              killEaterEvent_ = input.readUInt32();
              break;
            }
            case 576: {
              bitField2_ |= 0x00000040;
              unitStatusLabel_ = input.readUInt32();
              break;
            }
            case 584: {
              bitField2_ |= 0x00000080;
              spellGeneratedAttack_ = input.readBool();
              break;
            }
            case 592: {
              bitField2_ |= 0x00000100;
              atNightTime_ = input.readBool();
              break;
            }
            case 600: {
              bitField2_ |= 0x00000200;
              attackerHasScepter_ = input.readBool();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField1_ & 0x00000080) == 0x00000080)) {
          assistPlayers_ = java.util.Collections.unmodifiableList(assistPlayers_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CMsgDOTACombatLogEntry_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CMsgDOTACombatLogEntry_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgDOTACombatLogEntry.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgDOTACombatLogEntry.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CMsgDOTACombatLogEntry parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CMsgDOTACombatLogEntry(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    private int bitField1_;
    private int bitField2_;
    public static final int TYPE_FIELD_NUMBER = 1;
    private skadistats.clarity.wire.common.proto.DotaUserMessages.DOTA_COMBATLOG_TYPES type_;
    /**
     * optional .DOTA_COMBATLOG_TYPES type = 1 [default = DOTA_COMBATLOG_DAMAGE];
     */
    public boolean hasType() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional .DOTA_COMBATLOG_TYPES type = 1 [default = DOTA_COMBATLOG_DAMAGE];
     */
    public skadistats.clarity.wire.common.proto.DotaUserMessages.DOTA_COMBATLOG_TYPES getType() {
      return type_;
    }

    public static final int TARGET_NAME_FIELD_NUMBER = 2;
    private int targetName_;
    /**
     * optional uint32 target_name = 2;
     */
    public boolean hasTargetName() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional uint32 target_name = 2;
     */
    public int getTargetName() {
      return targetName_;
    }

    public static final int TARGET_SOURCE_NAME_FIELD_NUMBER = 3;
    private int targetSourceName_;
    /**
     * optional uint32 target_source_name = 3;
     */
    public boolean hasTargetSourceName() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional uint32 target_source_name = 3;
     */
    public int getTargetSourceName() {
      return targetSourceName_;
    }

    public static final int ATTACKER_NAME_FIELD_NUMBER = 4;
    private int attackerName_;
    /**
     * optional uint32 attacker_name = 4;
     */
    public boolean hasAttackerName() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional uint32 attacker_name = 4;
     */
    public int getAttackerName() {
      return attackerName_;
    }

    public static final int DAMAGE_SOURCE_NAME_FIELD_NUMBER = 5;
    private int damageSourceName_;
    /**
     * optional uint32 damage_source_name = 5;
     */
    public boolean hasDamageSourceName() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * optional uint32 damage_source_name = 5;
     */
    public int getDamageSourceName() {
      return damageSourceName_;
    }

    public static final int INFLICTOR_NAME_FIELD_NUMBER = 6;
    private int inflictorName_;
    /**
     * optional uint32 inflictor_name = 6;
     */
    public boolean hasInflictorName() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     * optional uint32 inflictor_name = 6;
     */
    public int getInflictorName() {
      return inflictorName_;
    }

    public static final int IS_ATTACKER_ILLUSION_FIELD_NUMBER = 7;
    private boolean isAttackerIllusion_;
    /**
     * optional bool is_attacker_illusion = 7;
     */
    public boolean hasIsAttackerIllusion() {
      return ((bitField0_ & 0x00000040) == 0x00000040);
    }
    /**
     * optional bool is_attacker_illusion = 7;
     */
    public boolean getIsAttackerIllusion() {
      return isAttackerIllusion_;
    }

    public static final int IS_ATTACKER_HERO_FIELD_NUMBER = 8;
    private boolean isAttackerHero_;
    /**
     * optional bool is_attacker_hero = 8;
     */
    public boolean hasIsAttackerHero() {
      return ((bitField0_ & 0x00000080) == 0x00000080);
    }
    /**
     * optional bool is_attacker_hero = 8;
     */
    public boolean getIsAttackerHero() {
      return isAttackerHero_;
    }

    public static final int IS_TARGET_ILLUSION_FIELD_NUMBER = 9;
    private boolean isTargetIllusion_;
    /**
     * optional bool is_target_illusion = 9;
     */
    public boolean hasIsTargetIllusion() {
      return ((bitField0_ & 0x00000100) == 0x00000100);
    }
    /**
     * optional bool is_target_illusion = 9;
     */
    public boolean getIsTargetIllusion() {
      return isTargetIllusion_;
    }

    public static final int IS_TARGET_HERO_FIELD_NUMBER = 10;
    private boolean isTargetHero_;
    /**
     * optional bool is_target_hero = 10;
     */
    public boolean hasIsTargetHero() {
      return ((bitField0_ & 0x00000200) == 0x00000200);
    }
    /**
     * optional bool is_target_hero = 10;
     */
    public boolean getIsTargetHero() {
      return isTargetHero_;
    }

    public static final int IS_VISIBLE_RADIANT_FIELD_NUMBER = 11;
    private boolean isVisibleRadiant_;
    /**
     * optional bool is_visible_radiant = 11;
     */
    public boolean hasIsVisibleRadiant() {
      return ((bitField0_ & 0x00000400) == 0x00000400);
    }
    /**
     * optional bool is_visible_radiant = 11;
     */
    public boolean getIsVisibleRadiant() {
      return isVisibleRadiant_;
    }

    public static final int IS_VISIBLE_DIRE_FIELD_NUMBER = 12;
    private boolean isVisibleDire_;
    /**
     * optional bool is_visible_dire = 12;
     */
    public boolean hasIsVisibleDire() {
      return ((bitField0_ & 0x00000800) == 0x00000800);
    }
    /**
     * optional bool is_visible_dire = 12;
     */
    public boolean getIsVisibleDire() {
      return isVisibleDire_;
    }

    public static final int VALUE_FIELD_NUMBER = 13;
    private int value_;
    /**
     * optional uint32 value = 13;
     */
    public boolean hasValue() {
      return ((bitField0_ & 0x00001000) == 0x00001000);
    }
    /**
     * optional uint32 value = 13;
     */
    public int getValue() {
      return value_;
    }

    public static final int HEALTH_FIELD_NUMBER = 14;
    private int health_;
    /**
     * optional int32 health = 14;
     */
    public boolean hasHealth() {
      return ((bitField0_ & 0x00002000) == 0x00002000);
    }
    /**
     * optional int32 health = 14;
     */
    public int getHealth() {
      return health_;
    }

    public static final int TIMESTAMP_FIELD_NUMBER = 15;
    private float timestamp_;
    /**
     * optional float timestamp = 15;
     */
    public boolean hasTimestamp() {
      return ((bitField0_ & 0x00004000) == 0x00004000);
    }
    /**
     * optional float timestamp = 15;
     */
    public float getTimestamp() {
      return timestamp_;
    }

    public static final int STUN_DURATION_FIELD_NUMBER = 16;
    private float stunDuration_;
    /**
     * optional float stun_duration = 16;
     */
    public boolean hasStunDuration() {
      return ((bitField0_ & 0x00008000) == 0x00008000);
    }
    /**
     * optional float stun_duration = 16;
     */
    public float getStunDuration() {
      return stunDuration_;
    }

    public static final int SLOW_DURATION_FIELD_NUMBER = 17;
    private float slowDuration_;
    /**
     * optional float slow_duration = 17;
     */
    public boolean hasSlowDuration() {
      return ((bitField0_ & 0x00010000) == 0x00010000);
    }
    /**
     * optional float slow_duration = 17;
     */
    public float getSlowDuration() {
      return slowDuration_;
    }

    public static final int IS_ABILITY_TOGGLE_ON_FIELD_NUMBER = 18;
    private boolean isAbilityToggleOn_;
    /**
     * optional bool is_ability_toggle_on = 18;
     */
    public boolean hasIsAbilityToggleOn() {
      return ((bitField0_ & 0x00020000) == 0x00020000);
    }
    /**
     * optional bool is_ability_toggle_on = 18;
     */
    public boolean getIsAbilityToggleOn() {
      return isAbilityToggleOn_;
    }

    public static final int IS_ABILITY_TOGGLE_OFF_FIELD_NUMBER = 19;
    private boolean isAbilityToggleOff_;
    /**
     * optional bool is_ability_toggle_off = 19;
     */
    public boolean hasIsAbilityToggleOff() {
      return ((bitField0_ & 0x00040000) == 0x00040000);
    }
    /**
     * optional bool is_ability_toggle_off = 19;
     */
    public boolean getIsAbilityToggleOff() {
      return isAbilityToggleOff_;
    }

    public static final int ABILITY_LEVEL_FIELD_NUMBER = 20;
    private int abilityLevel_;
    /**
     * optional uint32 ability_level = 20;
     */
    public boolean hasAbilityLevel() {
      return ((bitField0_ & 0x00080000) == 0x00080000);
    }
    /**
     * optional uint32 ability_level = 20;
     */
    public int getAbilityLevel() {
      return abilityLevel_;
    }

    public static final int LOCATION_X_FIELD_NUMBER = 21;
    private float locationX_;
    /**
     * optional float location_x = 21;
     */
    public boolean hasLocationX() {
      return ((bitField0_ & 0x00100000) == 0x00100000);
    }
    /**
     * optional float location_x = 21;
     */
    public float getLocationX() {
      return locationX_;
    }

    public static final int LOCATION_Y_FIELD_NUMBER = 22;
    private float locationY_;
    /**
     * optional float location_y = 22;
     */
    public boolean hasLocationY() {
      return ((bitField0_ & 0x00200000) == 0x00200000);
    }
    /**
     * optional float location_y = 22;
     */
    public float getLocationY() {
      return locationY_;
    }

    public static final int GOLD_REASON_FIELD_NUMBER = 23;
    private int goldReason_;
    /**
     * optional uint32 gold_reason = 23;
     */
    public boolean hasGoldReason() {
      return ((bitField0_ & 0x00400000) == 0x00400000);
    }
    /**
     * optional uint32 gold_reason = 23;
     */
    public int getGoldReason() {
      return goldReason_;
    }

    public static final int TIMESTAMP_RAW_FIELD_NUMBER = 24;
    private float timestampRaw_;
    /**
     * optional float timestamp_raw = 24;
     */
    public boolean hasTimestampRaw() {
      return ((bitField0_ & 0x00800000) == 0x00800000);
    }
    /**
     * optional float timestamp_raw = 24;
     */
    public float getTimestampRaw() {
      return timestampRaw_;
    }

    public static final int MODIFIER_DURATION_FIELD_NUMBER = 25;
    private float modifierDuration_;
    /**
     * optional float modifier_duration = 25;
     */
    public boolean hasModifierDuration() {
      return ((bitField0_ & 0x01000000) == 0x01000000);
    }
    /**
     * optional float modifier_duration = 25;
     */
    public float getModifierDuration() {
      return modifierDuration_;
    }

    public static final int XP_REASON_FIELD_NUMBER = 26;
    private int xpReason_;
    /**
     * optional uint32 xp_reason = 26;
     */
    public boolean hasXpReason() {
      return ((bitField0_ & 0x02000000) == 0x02000000);
    }
    /**
     * optional uint32 xp_reason = 26;
     */
    public int getXpReason() {
      return xpReason_;
    }

    public static final int LAST_HITS_FIELD_NUMBER = 27;
    private int lastHits_;
    /**
     * optional uint32 last_hits = 27;
     */
    public boolean hasLastHits() {
      return ((bitField0_ & 0x04000000) == 0x04000000);
    }
    /**
     * optional uint32 last_hits = 27;
     */
    public int getLastHits() {
      return lastHits_;
    }

    public static final int ATTACKER_TEAM_FIELD_NUMBER = 28;
    private int attackerTeam_;
    /**
     * optional uint32 attacker_team = 28;
     */
    public boolean hasAttackerTeam() {
      return ((bitField0_ & 0x08000000) == 0x08000000);
    }
    /**
     * optional uint32 attacker_team = 28;
     */
    public int getAttackerTeam() {
      return attackerTeam_;
    }

    public static final int TARGET_TEAM_FIELD_NUMBER = 29;
    private int targetTeam_;
    /**
     * optional uint32 target_team = 29;
     */
    public boolean hasTargetTeam() {
      return ((bitField0_ & 0x10000000) == 0x10000000);
    }
    /**
     * optional uint32 target_team = 29;
     */
    public int getTargetTeam() {
      return targetTeam_;
    }

    public static final int OBS_WARDS_PLACED_FIELD_NUMBER = 30;
    private int obsWardsPlaced_;
    /**
     * optional uint32 obs_wards_placed = 30;
     */
    public boolean hasObsWardsPlaced() {
      return ((bitField0_ & 0x20000000) == 0x20000000);
    }
    /**
     * optional uint32 obs_wards_placed = 30;
     */
    public int getObsWardsPlaced() {
      return obsWardsPlaced_;
    }

    public static final int ASSIST_PLAYER0_FIELD_NUMBER = 31;
    private int assistPlayer0_;
    /**
     * optional uint32 assist_player0 = 31;
     */
    public boolean hasAssistPlayer0() {
      return ((bitField0_ & 0x40000000) == 0x40000000);
    }
    /**
     * optional uint32 assist_player0 = 31;
     */
    public int getAssistPlayer0() {
      return assistPlayer0_;
    }

    public static final int ASSIST_PLAYER1_FIELD_NUMBER = 32;
    private int assistPlayer1_;
    /**
     * optional uint32 assist_player1 = 32;
     */
    public boolean hasAssistPlayer1() {
      return ((bitField0_ & 0x80000000) == 0x80000000);
    }
    /**
     * optional uint32 assist_player1 = 32;
     */
    public int getAssistPlayer1() {
      return assistPlayer1_;
    }

    public static final int ASSIST_PLAYER2_FIELD_NUMBER = 33;
    private int assistPlayer2_;
    /**
     * optional uint32 assist_player2 = 33;
     */
    public boolean hasAssistPlayer2() {
      return ((bitField1_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional uint32 assist_player2 = 33;
     */
    public int getAssistPlayer2() {
      return assistPlayer2_;
    }

    public static final int ASSIST_PLAYER3_FIELD_NUMBER = 34;
    private int assistPlayer3_;
    /**
     * optional uint32 assist_player3 = 34;
     */
    public boolean hasAssistPlayer3() {
      return ((bitField1_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional uint32 assist_player3 = 34;
     */
    public int getAssistPlayer3() {
      return assistPlayer3_;
    }

    public static final int STACK_COUNT_FIELD_NUMBER = 35;
    private int stackCount_;
    /**
     * optional uint32 stack_count = 35;
     */
    public boolean hasStackCount() {
      return ((bitField1_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional uint32 stack_count = 35;
     */
    public int getStackCount() {
      return stackCount_;
    }

    public static final int HIDDEN_MODIFIER_FIELD_NUMBER = 36;
    private boolean hiddenModifier_;
    /**
     * optional bool hidden_modifier = 36;
     */
    public boolean hasHiddenModifier() {
      return ((bitField1_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional bool hidden_modifier = 36;
     */
    public boolean getHiddenModifier() {
      return hiddenModifier_;
    }

    public static final int IS_TARGET_BUILDING_FIELD_NUMBER = 37;
    private boolean isTargetBuilding_;
    /**
     * optional bool is_target_building = 37;
     */
    public boolean hasIsTargetBuilding() {
      return ((bitField1_ & 0x00000010) == 0x00000010);
    }
    /**
     * optional bool is_target_building = 37;
     */
    public boolean getIsTargetBuilding() {
      return isTargetBuilding_;
    }

    public static final int NEUTRAL_CAMP_TYPE_FIELD_NUMBER = 38;
    private int neutralCampType_;
    /**
     * optional uint32 neutral_camp_type = 38;
     */
    public boolean hasNeutralCampType() {
      return ((bitField1_ & 0x00000020) == 0x00000020);
    }
    /**
     * optional uint32 neutral_camp_type = 38;
     */
    public int getNeutralCampType() {
      return neutralCampType_;
    }

    public static final int RUNE_TYPE_FIELD_NUMBER = 39;
    private int runeType_;
    /**
     * optional uint32 rune_type = 39;
     */
    public boolean hasRuneType() {
      return ((bitField1_ & 0x00000040) == 0x00000040);
    }
    /**
     * optional uint32 rune_type = 39;
     */
    public int getRuneType() {
      return runeType_;
    }

    public static final int ASSIST_PLAYERS_FIELD_NUMBER = 40;
    private java.util.List assistPlayers_;
    /**
     * repeated uint32 assist_players = 40;
     */
    public java.util.List
        getAssistPlayersList() {
      return assistPlayers_;
    }
    /**
     * repeated uint32 assist_players = 40;
     */
    public int getAssistPlayersCount() {
      return assistPlayers_.size();
    }
    /**
     * repeated uint32 assist_players = 40;
     */
    public int getAssistPlayers(int index) {
      return assistPlayers_.get(index);
    }

    public static final int IS_HEAL_SAVE_FIELD_NUMBER = 41;
    private boolean isHealSave_;
    /**
     * optional bool is_heal_save = 41;
     */
    public boolean hasIsHealSave() {
      return ((bitField1_ & 0x00000080) == 0x00000080);
    }
    /**
     * optional bool is_heal_save = 41;
     */
    public boolean getIsHealSave() {
      return isHealSave_;
    }

    public static final int IS_ULTIMATE_ABILITY_FIELD_NUMBER = 42;
    private boolean isUltimateAbility_;
    /**
     * optional bool is_ultimate_ability = 42;
     */
    public boolean hasIsUltimateAbility() {
      return ((bitField1_ & 0x00000100) == 0x00000100);
    }
    /**
     * optional bool is_ultimate_ability = 42;
     */
    public boolean getIsUltimateAbility() {
      return isUltimateAbility_;
    }

    public static final int ATTACKER_HERO_LEVEL_FIELD_NUMBER = 43;
    private int attackerHeroLevel_;
    /**
     * optional uint32 attacker_hero_level = 43;
     */
    public boolean hasAttackerHeroLevel() {
      return ((bitField1_ & 0x00000200) == 0x00000200);
    }
    /**
     * optional uint32 attacker_hero_level = 43;
     */
    public int getAttackerHeroLevel() {
      return attackerHeroLevel_;
    }

    public static final int TARGET_HERO_LEVEL_FIELD_NUMBER = 44;
    private int targetHeroLevel_;
    /**
     * optional uint32 target_hero_level = 44;
     */
    public boolean hasTargetHeroLevel() {
      return ((bitField1_ & 0x00000400) == 0x00000400);
    }
    /**
     * optional uint32 target_hero_level = 44;
     */
    public int getTargetHeroLevel() {
      return targetHeroLevel_;
    }

    public static final int XPM_FIELD_NUMBER = 45;
    private int xpm_;
    /**
     * optional uint32 xpm = 45;
     */
    public boolean hasXpm() {
      return ((bitField1_ & 0x00000800) == 0x00000800);
    }
    /**
     * optional uint32 xpm = 45;
     */
    public int getXpm() {
      return xpm_;
    }

    public static final int GPM_FIELD_NUMBER = 46;
    private int gpm_;
    /**
     * optional uint32 gpm = 46;
     */
    public boolean hasGpm() {
      return ((bitField1_ & 0x00001000) == 0x00001000);
    }
    /**
     * optional uint32 gpm = 46;
     */
    public int getGpm() {
      return gpm_;
    }

    public static final int EVENT_LOCATION_FIELD_NUMBER = 47;
    private int eventLocation_;
    /**
     * optional uint32 event_location = 47;
     */
    public boolean hasEventLocation() {
      return ((bitField1_ & 0x00002000) == 0x00002000);
    }
    /**
     * optional uint32 event_location = 47;
     */
    public int getEventLocation() {
      return eventLocation_;
    }

    public static final int TARGET_IS_SELF_FIELD_NUMBER = 48;
    private boolean targetIsSelf_;
    /**
     * optional bool target_is_self = 48;
     */
    public boolean hasTargetIsSelf() {
      return ((bitField1_ & 0x00004000) == 0x00004000);
    }
    /**
     * optional bool target_is_self = 48;
     */
    public boolean getTargetIsSelf() {
      return targetIsSelf_;
    }

    public static final int DAMAGE_TYPE_FIELD_NUMBER = 49;
    private int damageType_;
    /**
     * optional uint32 damage_type = 49;
     */
    public boolean hasDamageType() {
      return ((bitField1_ & 0x00008000) == 0x00008000);
    }
    /**
     * optional uint32 damage_type = 49;
     */
    public int getDamageType() {
      return damageType_;
    }

    public static final int INVISIBILITY_MODIFIER_FIELD_NUMBER = 50;
    private boolean invisibilityModifier_;
    /**
     * optional bool invisibility_modifier = 50;
     */
    public boolean hasInvisibilityModifier() {
      return ((bitField1_ & 0x00010000) == 0x00010000);
    }
    /**
     * optional bool invisibility_modifier = 50;
     */
    public boolean getInvisibilityModifier() {
      return invisibilityModifier_;
    }

    public static final int DAMAGE_CATEGORY_FIELD_NUMBER = 51;
    private int damageCategory_;
    /**
     * optional uint32 damage_category = 51;
     */
    public boolean hasDamageCategory() {
      return ((bitField1_ & 0x00020000) == 0x00020000);
    }
    /**
     * optional uint32 damage_category = 51;
     */
    public int getDamageCategory() {
      return damageCategory_;
    }

    public static final int NETWORTH_FIELD_NUMBER = 52;
    private int networth_;
    /**
     * optional uint32 networth = 52;
     */
    public boolean hasNetworth() {
      return ((bitField1_ & 0x00040000) == 0x00040000);
    }
    /**
     * optional uint32 networth = 52;
     */
    public int getNetworth() {
      return networth_;
    }

    public static final int BUILDING_TYPE_FIELD_NUMBER = 53;
    private int buildingType_;
    /**
     * optional uint32 building_type = 53;
     */
    public boolean hasBuildingType() {
      return ((bitField1_ & 0x00080000) == 0x00080000);
    }
    /**
     * optional uint32 building_type = 53;
     */
    public int getBuildingType() {
      return buildingType_;
    }

    public static final int MODIFIER_ELAPSED_DURATION_FIELD_NUMBER = 54;
    private float modifierElapsedDuration_;
    /**
     * optional float modifier_elapsed_duration = 54;
     */
    public boolean hasModifierElapsedDuration() {
      return ((bitField1_ & 0x00100000) == 0x00100000);
    }
    /**
     * optional float modifier_elapsed_duration = 54;
     */
    public float getModifierElapsedDuration() {
      return modifierElapsedDuration_;
    }

    public static final int SILENCE_MODIFIER_FIELD_NUMBER = 55;
    private boolean silenceModifier_;
    /**
     * optional bool silence_modifier = 55;
     */
    public boolean hasSilenceModifier() {
      return ((bitField1_ & 0x00200000) == 0x00200000);
    }
    /**
     * optional bool silence_modifier = 55;
     */
    public boolean getSilenceModifier() {
      return silenceModifier_;
    }

    public static final int HEAL_FROM_LIFESTEAL_FIELD_NUMBER = 56;
    private boolean healFromLifesteal_;
    /**
     * optional bool heal_from_lifesteal = 56;
     */
    public boolean hasHealFromLifesteal() {
      return ((bitField1_ & 0x00400000) == 0x00400000);
    }
    /**
     * optional bool heal_from_lifesteal = 56;
     */
    public boolean getHealFromLifesteal() {
      return healFromLifesteal_;
    }

    public static final int MODIFIER_PURGED_FIELD_NUMBER = 57;
    private boolean modifierPurged_;
    /**
     * optional bool modifier_purged = 57;
     */
    public boolean hasModifierPurged() {
      return ((bitField1_ & 0x00800000) == 0x00800000);
    }
    /**
     * optional bool modifier_purged = 57;
     */
    public boolean getModifierPurged() {
      return modifierPurged_;
    }

    public static final int SPELL_EVADED_FIELD_NUMBER = 58;
    private boolean spellEvaded_;
    /**
     * optional bool spell_evaded = 58;
     */
    public boolean hasSpellEvaded() {
      return ((bitField1_ & 0x01000000) == 0x01000000);
    }
    /**
     * optional bool spell_evaded = 58;
     */
    public boolean getSpellEvaded() {
      return spellEvaded_;
    }

    public static final int MOTION_CONTROLLER_MODIFIER_FIELD_NUMBER = 59;
    private boolean motionControllerModifier_;
    /**
     * optional bool motion_controller_modifier = 59;
     */
    public boolean hasMotionControllerModifier() {
      return ((bitField1_ & 0x02000000) == 0x02000000);
    }
    /**
     * optional bool motion_controller_modifier = 59;
     */
    public boolean getMotionControllerModifier() {
      return motionControllerModifier_;
    }

    public static final int LONG_RANGE_KILL_FIELD_NUMBER = 60;
    private boolean longRangeKill_;
    /**
     * optional bool long_range_kill = 60;
     */
    public boolean hasLongRangeKill() {
      return ((bitField1_ & 0x04000000) == 0x04000000);
    }
    /**
     * optional bool long_range_kill = 60;
     */
    public boolean getLongRangeKill() {
      return longRangeKill_;
    }

    public static final int MODIFIER_PURGE_ABILITY_FIELD_NUMBER = 61;
    private int modifierPurgeAbility_;
    /**
     * optional uint32 modifier_purge_ability = 61;
     */
    public boolean hasModifierPurgeAbility() {
      return ((bitField1_ & 0x08000000) == 0x08000000);
    }
    /**
     * optional uint32 modifier_purge_ability = 61;
     */
    public int getModifierPurgeAbility() {
      return modifierPurgeAbility_;
    }

    public static final int MODIFIER_PURGE_NPC_FIELD_NUMBER = 62;
    private int modifierPurgeNpc_;
    /**
     * optional uint32 modifier_purge_npc = 62;
     */
    public boolean hasModifierPurgeNpc() {
      return ((bitField1_ & 0x10000000) == 0x10000000);
    }
    /**
     * optional uint32 modifier_purge_npc = 62;
     */
    public int getModifierPurgeNpc() {
      return modifierPurgeNpc_;
    }

    public static final int ROOT_MODIFIER_FIELD_NUMBER = 63;
    private boolean rootModifier_;
    /**
     * optional bool root_modifier = 63;
     */
    public boolean hasRootModifier() {
      return ((bitField1_ & 0x20000000) == 0x20000000);
    }
    /**
     * optional bool root_modifier = 63;
     */
    public boolean getRootModifier() {
      return rootModifier_;
    }

    public static final int TOTAL_UNIT_DEATH_COUNT_FIELD_NUMBER = 64;
    private int totalUnitDeathCount_;
    /**
     * optional uint32 total_unit_death_count = 64;
     */
    public boolean hasTotalUnitDeathCount() {
      return ((bitField1_ & 0x40000000) == 0x40000000);
    }
    /**
     * optional uint32 total_unit_death_count = 64;
     */
    public int getTotalUnitDeathCount() {
      return totalUnitDeathCount_;
    }

    public static final int AURA_MODIFIER_FIELD_NUMBER = 65;
    private boolean auraModifier_;
    /**
     * optional bool aura_modifier = 65;
     */
    public boolean hasAuraModifier() {
      return ((bitField1_ & 0x80000000) == 0x80000000);
    }
    /**
     * optional bool aura_modifier = 65;
     */
    public boolean getAuraModifier() {
      return auraModifier_;
    }

    public static final int ARMOR_DEBUFF_MODIFIER_FIELD_NUMBER = 66;
    private boolean armorDebuffModifier_;
    /**
     * optional bool armor_debuff_modifier = 66;
     */
    public boolean hasArmorDebuffModifier() {
      return ((bitField2_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional bool armor_debuff_modifier = 66;
     */
    public boolean getArmorDebuffModifier() {
      return armorDebuffModifier_;
    }

    public static final int NO_PHYSICAL_DAMAGE_MODIFIER_FIELD_NUMBER = 67;
    private boolean noPhysicalDamageModifier_;
    /**
     * optional bool no_physical_damage_modifier = 67;
     */
    public boolean hasNoPhysicalDamageModifier() {
      return ((bitField2_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional bool no_physical_damage_modifier = 67;
     */
    public boolean getNoPhysicalDamageModifier() {
      return noPhysicalDamageModifier_;
    }

    public static final int MODIFIER_ABILITY_FIELD_NUMBER = 68;
    private int modifierAbility_;
    /**
     * optional uint32 modifier_ability = 68;
     */
    public boolean hasModifierAbility() {
      return ((bitField2_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional uint32 modifier_ability = 68;
     */
    public int getModifierAbility() {
      return modifierAbility_;
    }

    public static final int MODIFIER_HIDDEN_FIELD_NUMBER = 69;
    private boolean modifierHidden_;
    /**
     * optional bool modifier_hidden = 69;
     */
    public boolean hasModifierHidden() {
      return ((bitField2_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional bool modifier_hidden = 69;
     */
    public boolean getModifierHidden() {
      return modifierHidden_;
    }

    public static final int INFLICTOR_IS_STOLEN_ABILITY_FIELD_NUMBER = 70;
    private boolean inflictorIsStolenAbility_;
    /**
     * optional bool inflictor_is_stolen_ability = 70;
     */
    public boolean hasInflictorIsStolenAbility() {
      return ((bitField2_ & 0x00000010) == 0x00000010);
    }
    /**
     * optional bool inflictor_is_stolen_ability = 70;
     */
    public boolean getInflictorIsStolenAbility() {
      return inflictorIsStolenAbility_;
    }

    public static final int KILL_EATER_EVENT_FIELD_NUMBER = 71;
    private int killEaterEvent_;
    /**
     * optional uint32 kill_eater_event = 71;
     */
    public boolean hasKillEaterEvent() {
      return ((bitField2_ & 0x00000020) == 0x00000020);
    }
    /**
     * optional uint32 kill_eater_event = 71;
     */
    public int getKillEaterEvent() {
      return killEaterEvent_;
    }

    public static final int UNIT_STATUS_LABEL_FIELD_NUMBER = 72;
    private int unitStatusLabel_;
    /**
     * optional uint32 unit_status_label = 72;
     */
    public boolean hasUnitStatusLabel() {
      return ((bitField2_ & 0x00000040) == 0x00000040);
    }
    /**
     * optional uint32 unit_status_label = 72;
     */
    public int getUnitStatusLabel() {
      return unitStatusLabel_;
    }

    public static final int SPELL_GENERATED_ATTACK_FIELD_NUMBER = 73;
    private boolean spellGeneratedAttack_;
    /**
     * optional bool spell_generated_attack = 73;
     */
    public boolean hasSpellGeneratedAttack() {
      return ((bitField2_ & 0x00000080) == 0x00000080);
    }
    /**
     * optional bool spell_generated_attack = 73;
     */
    public boolean getSpellGeneratedAttack() {
      return spellGeneratedAttack_;
    }

    public static final int AT_NIGHT_TIME_FIELD_NUMBER = 74;
    private boolean atNightTime_;
    /**
     * optional bool at_night_time = 74;
     */
    public boolean hasAtNightTime() {
      return ((bitField2_ & 0x00000100) == 0x00000100);
    }
    /**
     * optional bool at_night_time = 74;
     */
    public boolean getAtNightTime() {
      return atNightTime_;
    }

    public static final int ATTACKER_HAS_SCEPTER_FIELD_NUMBER = 75;
    private boolean attackerHasScepter_;
    /**
     * optional bool attacker_has_scepter = 75;
     */
    public boolean hasAttackerHasScepter() {
      return ((bitField2_ & 0x00000200) == 0x00000200);
    }
    /**
     * optional bool attacker_has_scepter = 75;
     */
    public boolean getAttackerHasScepter() {
      return attackerHasScepter_;
    }

    private void initFields() {
      type_ = skadistats.clarity.wire.common.proto.DotaUserMessages.DOTA_COMBATLOG_TYPES.DOTA_COMBATLOG_DAMAGE;
      targetName_ = 0;
      targetSourceName_ = 0;
      attackerName_ = 0;
      damageSourceName_ = 0;
      inflictorName_ = 0;
      isAttackerIllusion_ = false;
      isAttackerHero_ = false;
      isTargetIllusion_ = false;
      isTargetHero_ = false;
      isVisibleRadiant_ = false;
      isVisibleDire_ = false;
      value_ = 0;
      health_ = 0;
      timestamp_ = 0F;
      stunDuration_ = 0F;
      slowDuration_ = 0F;
      isAbilityToggleOn_ = false;
      isAbilityToggleOff_ = false;
      abilityLevel_ = 0;
      locationX_ = 0F;
      locationY_ = 0F;
      goldReason_ = 0;
      timestampRaw_ = 0F;
      modifierDuration_ = 0F;
      xpReason_ = 0;
      lastHits_ = 0;
      attackerTeam_ = 0;
      targetTeam_ = 0;
      obsWardsPlaced_ = 0;
      assistPlayer0_ = 0;
      assistPlayer1_ = 0;
      assistPlayer2_ = 0;
      assistPlayer3_ = 0;
      stackCount_ = 0;
      hiddenModifier_ = false;
      isTargetBuilding_ = false;
      neutralCampType_ = 0;
      runeType_ = 0;
      assistPlayers_ = java.util.Collections.emptyList();
      isHealSave_ = false;
      isUltimateAbility_ = false;
      attackerHeroLevel_ = 0;
      targetHeroLevel_ = 0;
      xpm_ = 0;
      gpm_ = 0;
      eventLocation_ = 0;
      targetIsSelf_ = false;
      damageType_ = 0;
      invisibilityModifier_ = false;
      damageCategory_ = 0;
      networth_ = 0;
      buildingType_ = 0;
      modifierElapsedDuration_ = 0F;
      silenceModifier_ = false;
      healFromLifesteal_ = false;
      modifierPurged_ = false;
      spellEvaded_ = false;
      motionControllerModifier_ = false;
      longRangeKill_ = false;
      modifierPurgeAbility_ = 0;
      modifierPurgeNpc_ = 0;
      rootModifier_ = false;
      totalUnitDeathCount_ = 0;
      auraModifier_ = false;
      armorDebuffModifier_ = false;
      noPhysicalDamageModifier_ = false;
      modifierAbility_ = 0;
      modifierHidden_ = false;
      inflictorIsStolenAbility_ = false;
      killEaterEvent_ = 0;
      unitStatusLabel_ = 0;
      spellGeneratedAttack_ = false;
      atNightTime_ = false;
      attackerHasScepter_ = false;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeEnum(1, type_.getNumber());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, targetName_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeUInt32(3, targetSourceName_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeUInt32(4, attackerName_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeUInt32(5, damageSourceName_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeUInt32(6, inflictorName_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        output.writeBool(7, isAttackerIllusion_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        output.writeBool(8, isAttackerHero_);
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        output.writeBool(9, isTargetIllusion_);
      }
      if (((bitField0_ & 0x00000200) == 0x00000200)) {
        output.writeBool(10, isTargetHero_);
      }
      if (((bitField0_ & 0x00000400) == 0x00000400)) {
        output.writeBool(11, isVisibleRadiant_);
      }
      if (((bitField0_ & 0x00000800) == 0x00000800)) {
        output.writeBool(12, isVisibleDire_);
      }
      if (((bitField0_ & 0x00001000) == 0x00001000)) {
        output.writeUInt32(13, value_);
      }
      if (((bitField0_ & 0x00002000) == 0x00002000)) {
        output.writeInt32(14, health_);
      }
      if (((bitField0_ & 0x00004000) == 0x00004000)) {
        output.writeFloat(15, timestamp_);
      }
      if (((bitField0_ & 0x00008000) == 0x00008000)) {
        output.writeFloat(16, stunDuration_);
      }
      if (((bitField0_ & 0x00010000) == 0x00010000)) {
        output.writeFloat(17, slowDuration_);
      }
      if (((bitField0_ & 0x00020000) == 0x00020000)) {
        output.writeBool(18, isAbilityToggleOn_);
      }
      if (((bitField0_ & 0x00040000) == 0x00040000)) {
        output.writeBool(19, isAbilityToggleOff_);
      }
      if (((bitField0_ & 0x00080000) == 0x00080000)) {
        output.writeUInt32(20, abilityLevel_);
      }
      if (((bitField0_ & 0x00100000) == 0x00100000)) {
        output.writeFloat(21, locationX_);
      }
      if (((bitField0_ & 0x00200000) == 0x00200000)) {
        output.writeFloat(22, locationY_);
      }
      if (((bitField0_ & 0x00400000) == 0x00400000)) {
        output.writeUInt32(23, goldReason_);
      }
      if (((bitField0_ & 0x00800000) == 0x00800000)) {
        output.writeFloat(24, timestampRaw_);
      }
      if (((bitField0_ & 0x01000000) == 0x01000000)) {
        output.writeFloat(25, modifierDuration_);
      }
      if (((bitField0_ & 0x02000000) == 0x02000000)) {
        output.writeUInt32(26, xpReason_);
      }
      if (((bitField0_ & 0x04000000) == 0x04000000)) {
        output.writeUInt32(27, lastHits_);
      }
      if (((bitField0_ & 0x08000000) == 0x08000000)) {
        output.writeUInt32(28, attackerTeam_);
      }
      if (((bitField0_ & 0x10000000) == 0x10000000)) {
        output.writeUInt32(29, targetTeam_);
      }
      if (((bitField0_ & 0x20000000) == 0x20000000)) {
        output.writeUInt32(30, obsWardsPlaced_);
      }
      if (((bitField0_ & 0x40000000) == 0x40000000)) {
        output.writeUInt32(31, assistPlayer0_);
      }
      if (((bitField0_ & 0x80000000) == 0x80000000)) {
        output.writeUInt32(32, assistPlayer1_);
      }
      if (((bitField1_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(33, assistPlayer2_);
      }
      if (((bitField1_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(34, assistPlayer3_);
      }
      if (((bitField1_ & 0x00000004) == 0x00000004)) {
        output.writeUInt32(35, stackCount_);
      }
      if (((bitField1_ & 0x00000008) == 0x00000008)) {
        output.writeBool(36, hiddenModifier_);
      }
      if (((bitField1_ & 0x00000010) == 0x00000010)) {
        output.writeBool(37, isTargetBuilding_);
      }
      if (((bitField1_ & 0x00000020) == 0x00000020)) {
        output.writeUInt32(38, neutralCampType_);
      }
      if (((bitField1_ & 0x00000040) == 0x00000040)) {
        output.writeUInt32(39, runeType_);
      }
      for (int i = 0; i < assistPlayers_.size(); i++) {
        output.writeUInt32(40, assistPlayers_.get(i));
      }
      if (((bitField1_ & 0x00000080) == 0x00000080)) {
        output.writeBool(41, isHealSave_);
      }
      if (((bitField1_ & 0x00000100) == 0x00000100)) {
        output.writeBool(42, isUltimateAbility_);
      }
      if (((bitField1_ & 0x00000200) == 0x00000200)) {
        output.writeUInt32(43, attackerHeroLevel_);
      }
      if (((bitField1_ & 0x00000400) == 0x00000400)) {
        output.writeUInt32(44, targetHeroLevel_);
      }
      if (((bitField1_ & 0x00000800) == 0x00000800)) {
        output.writeUInt32(45, xpm_);
      }
      if (((bitField1_ & 0x00001000) == 0x00001000)) {
        output.writeUInt32(46, gpm_);
      }
      if (((bitField1_ & 0x00002000) == 0x00002000)) {
        output.writeUInt32(47, eventLocation_);
      }
      if (((bitField1_ & 0x00004000) == 0x00004000)) {
        output.writeBool(48, targetIsSelf_);
      }
      if (((bitField1_ & 0x00008000) == 0x00008000)) {
        output.writeUInt32(49, damageType_);
      }
      if (((bitField1_ & 0x00010000) == 0x00010000)) {
        output.writeBool(50, invisibilityModifier_);
      }
      if (((bitField1_ & 0x00020000) == 0x00020000)) {
        output.writeUInt32(51, damageCategory_);
      }
      if (((bitField1_ & 0x00040000) == 0x00040000)) {
        output.writeUInt32(52, networth_);
      }
      if (((bitField1_ & 0x00080000) == 0x00080000)) {
        output.writeUInt32(53, buildingType_);
      }
      if (((bitField1_ & 0x00100000) == 0x00100000)) {
        output.writeFloat(54, modifierElapsedDuration_);
      }
      if (((bitField1_ & 0x00200000) == 0x00200000)) {
        output.writeBool(55, silenceModifier_);
      }
      if (((bitField1_ & 0x00400000) == 0x00400000)) {
        output.writeBool(56, healFromLifesteal_);
      }
      if (((bitField1_ & 0x00800000) == 0x00800000)) {
        output.writeBool(57, modifierPurged_);
      }
      if (((bitField1_ & 0x01000000) == 0x01000000)) {
        output.writeBool(58, spellEvaded_);
      }
      if (((bitField1_ & 0x02000000) == 0x02000000)) {
        output.writeBool(59, motionControllerModifier_);
      }
      if (((bitField1_ & 0x04000000) == 0x04000000)) {
        output.writeBool(60, longRangeKill_);
      }
      if (((bitField1_ & 0x08000000) == 0x08000000)) {
        output.writeUInt32(61, modifierPurgeAbility_);
      }
      if (((bitField1_ & 0x10000000) == 0x10000000)) {
        output.writeUInt32(62, modifierPurgeNpc_);
      }
      if (((bitField1_ & 0x20000000) == 0x20000000)) {
        output.writeBool(63, rootModifier_);
      }
      if (((bitField1_ & 0x40000000) == 0x40000000)) {
        output.writeUInt32(64, totalUnitDeathCount_);
      }
      if (((bitField1_ & 0x80000000) == 0x80000000)) {
        output.writeBool(65, auraModifier_);
      }
      if (((bitField2_ & 0x00000001) == 0x00000001)) {
        output.writeBool(66, armorDebuffModifier_);
      }
      if (((bitField2_ & 0x00000002) == 0x00000002)) {
        output.writeBool(67, noPhysicalDamageModifier_);
      }
      if (((bitField2_ & 0x00000004) == 0x00000004)) {
        output.writeUInt32(68, modifierAbility_);
      }
      if (((bitField2_ & 0x00000008) == 0x00000008)) {
        output.writeBool(69, modifierHidden_);
      }
      if (((bitField2_ & 0x00000010) == 0x00000010)) {
        output.writeBool(70, inflictorIsStolenAbility_);
      }
      if (((bitField2_ & 0x00000020) == 0x00000020)) {
        output.writeUInt32(71, killEaterEvent_);
      }
      if (((bitField2_ & 0x00000040) == 0x00000040)) {
        output.writeUInt32(72, unitStatusLabel_);
      }
      if (((bitField2_ & 0x00000080) == 0x00000080)) {
        output.writeBool(73, spellGeneratedAttack_);
      }
      if (((bitField2_ & 0x00000100) == 0x00000100)) {
        output.writeBool(74, atNightTime_);
      }
      if (((bitField2_ & 0x00000200) == 0x00000200)) {
        output.writeBool(75, attackerHasScepter_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(1, type_.getNumber());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, targetName_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, targetSourceName_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(4, attackerName_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(5, damageSourceName_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(6, inflictorName_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(7, isAttackerIllusion_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(8, isAttackerHero_);
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(9, isTargetIllusion_);
      }
      if (((bitField0_ & 0x00000200) == 0x00000200)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(10, isTargetHero_);
      }
      if (((bitField0_ & 0x00000400) == 0x00000400)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(11, isVisibleRadiant_);
      }
      if (((bitField0_ & 0x00000800) == 0x00000800)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(12, isVisibleDire_);
      }
      if (((bitField0_ & 0x00001000) == 0x00001000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(13, value_);
      }
      if (((bitField0_ & 0x00002000) == 0x00002000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(14, health_);
      }
      if (((bitField0_ & 0x00004000) == 0x00004000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(15, timestamp_);
      }
      if (((bitField0_ & 0x00008000) == 0x00008000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(16, stunDuration_);
      }
      if (((bitField0_ & 0x00010000) == 0x00010000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(17, slowDuration_);
      }
      if (((bitField0_ & 0x00020000) == 0x00020000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(18, isAbilityToggleOn_);
      }
      if (((bitField0_ & 0x00040000) == 0x00040000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(19, isAbilityToggleOff_);
      }
      if (((bitField0_ & 0x00080000) == 0x00080000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(20, abilityLevel_);
      }
      if (((bitField0_ & 0x00100000) == 0x00100000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(21, locationX_);
      }
      if (((bitField0_ & 0x00200000) == 0x00200000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(22, locationY_);
      }
      if (((bitField0_ & 0x00400000) == 0x00400000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(23, goldReason_);
      }
      if (((bitField0_ & 0x00800000) == 0x00800000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(24, timestampRaw_);
      }
      if (((bitField0_ & 0x01000000) == 0x01000000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(25, modifierDuration_);
      }
      if (((bitField0_ & 0x02000000) == 0x02000000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(26, xpReason_);
      }
      if (((bitField0_ & 0x04000000) == 0x04000000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(27, lastHits_);
      }
      if (((bitField0_ & 0x08000000) == 0x08000000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(28, attackerTeam_);
      }
      if (((bitField0_ & 0x10000000) == 0x10000000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(29, targetTeam_);
      }
      if (((bitField0_ & 0x20000000) == 0x20000000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(30, obsWardsPlaced_);
      }
      if (((bitField0_ & 0x40000000) == 0x40000000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(31, assistPlayer0_);
      }
      if (((bitField0_ & 0x80000000) == 0x80000000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(32, assistPlayer1_);
      }
      if (((bitField1_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(33, assistPlayer2_);
      }
      if (((bitField1_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(34, assistPlayer3_);
      }
      if (((bitField1_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(35, stackCount_);
      }
      if (((bitField1_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(36, hiddenModifier_);
      }
      if (((bitField1_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(37, isTargetBuilding_);
      }
      if (((bitField1_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(38, neutralCampType_);
      }
      if (((bitField1_ & 0x00000040) == 0x00000040)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(39, runeType_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < assistPlayers_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeUInt32SizeNoTag(assistPlayers_.get(i));
        }
        size += dataSize;
        size += 2 * getAssistPlayersList().size();
      }
      if (((bitField1_ & 0x00000080) == 0x00000080)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(41, isHealSave_);
      }
      if (((bitField1_ & 0x00000100) == 0x00000100)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(42, isUltimateAbility_);
      }
      if (((bitField1_ & 0x00000200) == 0x00000200)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(43, attackerHeroLevel_);
      }
      if (((bitField1_ & 0x00000400) == 0x00000400)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(44, targetHeroLevel_);
      }
      if (((bitField1_ & 0x00000800) == 0x00000800)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(45, xpm_);
      }
      if (((bitField1_ & 0x00001000) == 0x00001000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(46, gpm_);
      }
      if (((bitField1_ & 0x00002000) == 0x00002000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(47, eventLocation_);
      }
      if (((bitField1_ & 0x00004000) == 0x00004000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(48, targetIsSelf_);
      }
      if (((bitField1_ & 0x00008000) == 0x00008000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(49, damageType_);
      }
      if (((bitField1_ & 0x00010000) == 0x00010000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(50, invisibilityModifier_);
      }
      if (((bitField1_ & 0x00020000) == 0x00020000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(51, damageCategory_);
      }
      if (((bitField1_ & 0x00040000) == 0x00040000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(52, networth_);
      }
      if (((bitField1_ & 0x00080000) == 0x00080000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(53, buildingType_);
      }
      if (((bitField1_ & 0x00100000) == 0x00100000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(54, modifierElapsedDuration_);
      }
      if (((bitField1_ & 0x00200000) == 0x00200000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(55, silenceModifier_);
      }
      if (((bitField1_ & 0x00400000) == 0x00400000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(56, healFromLifesteal_);
      }
      if (((bitField1_ & 0x00800000) == 0x00800000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(57, modifierPurged_);
      }
      if (((bitField1_ & 0x01000000) == 0x01000000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(58, spellEvaded_);
      }
      if (((bitField1_ & 0x02000000) == 0x02000000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(59, motionControllerModifier_);
      }
      if (((bitField1_ & 0x04000000) == 0x04000000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(60, longRangeKill_);
      }
      if (((bitField1_ & 0x08000000) == 0x08000000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(61, modifierPurgeAbility_);
      }
      if (((bitField1_ & 0x10000000) == 0x10000000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(62, modifierPurgeNpc_);
      }
      if (((bitField1_ & 0x20000000) == 0x20000000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(63, rootModifier_);
      }
      if (((bitField1_ & 0x40000000) == 0x40000000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(64, totalUnitDeathCount_);
      }
      if (((bitField1_ & 0x80000000) == 0x80000000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(65, auraModifier_);
      }
      if (((bitField2_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(66, armorDebuffModifier_);
      }
      if (((bitField2_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(67, noPhysicalDamageModifier_);
      }
      if (((bitField2_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(68, modifierAbility_);
      }
      if (((bitField2_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(69, modifierHidden_);
      }
      if (((bitField2_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(70, inflictorIsStolenAbility_);
      }
      if (((bitField2_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(71, killEaterEvent_);
      }
      if (((bitField2_ & 0x00000040) == 0x00000040)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(72, unitStatusLabel_);
      }
      if (((bitField2_ & 0x00000080) == 0x00000080)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(73, spellGeneratedAttack_);
      }
      if (((bitField2_ & 0x00000100) == 0x00000100)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(74, atNightTime_);
      }
      if (((bitField2_ & 0x00000200) == 0x00000200)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(75, attackerHasScepter_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgDOTACombatLogEntry parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgDOTACombatLogEntry parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgDOTACombatLogEntry parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgDOTACombatLogEntry parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgDOTACombatLogEntry parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgDOTACombatLogEntry parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgDOTACombatLogEntry parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgDOTACombatLogEntry parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgDOTACombatLogEntry parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgDOTACombatLogEntry parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgDOTACombatLogEntry prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CMsgDOTACombatLogEntry}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CMsgDOTACombatLogEntry)
        skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgDOTACombatLogEntryOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CMsgDOTACombatLogEntry_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CMsgDOTACombatLogEntry_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgDOTACombatLogEntry.class, skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgDOTACombatLogEntry.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgDOTACombatLogEntry.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        type_ = skadistats.clarity.wire.common.proto.DotaUserMessages.DOTA_COMBATLOG_TYPES.DOTA_COMBATLOG_DAMAGE;
        bitField0_ = (bitField0_ & ~0x00000001);
        targetName_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        targetSourceName_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        attackerName_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        damageSourceName_ = 0;
        bitField0_ = (bitField0_ & ~0x00000010);
        inflictorName_ = 0;
        bitField0_ = (bitField0_ & ~0x00000020);
        isAttackerIllusion_ = false;
        bitField0_ = (bitField0_ & ~0x00000040);
        isAttackerHero_ = false;
        bitField0_ = (bitField0_ & ~0x00000080);
        isTargetIllusion_ = false;
        bitField0_ = (bitField0_ & ~0x00000100);
        isTargetHero_ = false;
        bitField0_ = (bitField0_ & ~0x00000200);
        isVisibleRadiant_ = false;
        bitField0_ = (bitField0_ & ~0x00000400);
        isVisibleDire_ = false;
        bitField0_ = (bitField0_ & ~0x00000800);
        value_ = 0;
        bitField0_ = (bitField0_ & ~0x00001000);
        health_ = 0;
        bitField0_ = (bitField0_ & ~0x00002000);
        timestamp_ = 0F;
        bitField0_ = (bitField0_ & ~0x00004000);
        stunDuration_ = 0F;
        bitField0_ = (bitField0_ & ~0x00008000);
        slowDuration_ = 0F;
        bitField0_ = (bitField0_ & ~0x00010000);
        isAbilityToggleOn_ = false;
        bitField0_ = (bitField0_ & ~0x00020000);
        isAbilityToggleOff_ = false;
        bitField0_ = (bitField0_ & ~0x00040000);
        abilityLevel_ = 0;
        bitField0_ = (bitField0_ & ~0x00080000);
        locationX_ = 0F;
        bitField0_ = (bitField0_ & ~0x00100000);
        locationY_ = 0F;
        bitField0_ = (bitField0_ & ~0x00200000);
        goldReason_ = 0;
        bitField0_ = (bitField0_ & ~0x00400000);
        timestampRaw_ = 0F;
        bitField0_ = (bitField0_ & ~0x00800000);
        modifierDuration_ = 0F;
        bitField0_ = (bitField0_ & ~0x01000000);
        xpReason_ = 0;
        bitField0_ = (bitField0_ & ~0x02000000);
        lastHits_ = 0;
        bitField0_ = (bitField0_ & ~0x04000000);
        attackerTeam_ = 0;
        bitField0_ = (bitField0_ & ~0x08000000);
        targetTeam_ = 0;
        bitField0_ = (bitField0_ & ~0x10000000);
        obsWardsPlaced_ = 0;
        bitField0_ = (bitField0_ & ~0x20000000);
        assistPlayer0_ = 0;
        bitField0_ = (bitField0_ & ~0x40000000);
        assistPlayer1_ = 0;
        bitField0_ = (bitField0_ & ~0x80000000);
        assistPlayer2_ = 0;
        bitField1_ = (bitField1_ & ~0x00000001);
        assistPlayer3_ = 0;
        bitField1_ = (bitField1_ & ~0x00000002);
        stackCount_ = 0;
        bitField1_ = (bitField1_ & ~0x00000004);
        hiddenModifier_ = false;
        bitField1_ = (bitField1_ & ~0x00000008);
        isTargetBuilding_ = false;
        bitField1_ = (bitField1_ & ~0x00000010);
        neutralCampType_ = 0;
        bitField1_ = (bitField1_ & ~0x00000020);
        runeType_ = 0;
        bitField1_ = (bitField1_ & ~0x00000040);
        assistPlayers_ = java.util.Collections.emptyList();
        bitField1_ = (bitField1_ & ~0x00000080);
        isHealSave_ = false;
        bitField1_ = (bitField1_ & ~0x00000100);
        isUltimateAbility_ = false;
        bitField1_ = (bitField1_ & ~0x00000200);
        attackerHeroLevel_ = 0;
        bitField1_ = (bitField1_ & ~0x00000400);
        targetHeroLevel_ = 0;
        bitField1_ = (bitField1_ & ~0x00000800);
        xpm_ = 0;
        bitField1_ = (bitField1_ & ~0x00001000);
        gpm_ = 0;
        bitField1_ = (bitField1_ & ~0x00002000);
        eventLocation_ = 0;
        bitField1_ = (bitField1_ & ~0x00004000);
        targetIsSelf_ = false;
        bitField1_ = (bitField1_ & ~0x00008000);
        damageType_ = 0;
        bitField1_ = (bitField1_ & ~0x00010000);
        invisibilityModifier_ = false;
        bitField1_ = (bitField1_ & ~0x00020000);
        damageCategory_ = 0;
        bitField1_ = (bitField1_ & ~0x00040000);
        networth_ = 0;
        bitField1_ = (bitField1_ & ~0x00080000);
        buildingType_ = 0;
        bitField1_ = (bitField1_ & ~0x00100000);
        modifierElapsedDuration_ = 0F;
        bitField1_ = (bitField1_ & ~0x00200000);
        silenceModifier_ = false;
        bitField1_ = (bitField1_ & ~0x00400000);
        healFromLifesteal_ = false;
        bitField1_ = (bitField1_ & ~0x00800000);
        modifierPurged_ = false;
        bitField1_ = (bitField1_ & ~0x01000000);
        spellEvaded_ = false;
        bitField1_ = (bitField1_ & ~0x02000000);
        motionControllerModifier_ = false;
        bitField1_ = (bitField1_ & ~0x04000000);
        longRangeKill_ = false;
        bitField1_ = (bitField1_ & ~0x08000000);
        modifierPurgeAbility_ = 0;
        bitField1_ = (bitField1_ & ~0x10000000);
        modifierPurgeNpc_ = 0;
        bitField1_ = (bitField1_ & ~0x20000000);
        rootModifier_ = false;
        bitField1_ = (bitField1_ & ~0x40000000);
        totalUnitDeathCount_ = 0;
        bitField1_ = (bitField1_ & ~0x80000000);
        auraModifier_ = false;
        bitField2_ = (bitField2_ & ~0x00000001);
        armorDebuffModifier_ = false;
        bitField2_ = (bitField2_ & ~0x00000002);
        noPhysicalDamageModifier_ = false;
        bitField2_ = (bitField2_ & ~0x00000004);
        modifierAbility_ = 0;
        bitField2_ = (bitField2_ & ~0x00000008);
        modifierHidden_ = false;
        bitField2_ = (bitField2_ & ~0x00000010);
        inflictorIsStolenAbility_ = false;
        bitField2_ = (bitField2_ & ~0x00000020);
        killEaterEvent_ = 0;
        bitField2_ = (bitField2_ & ~0x00000040);
        unitStatusLabel_ = 0;
        bitField2_ = (bitField2_ & ~0x00000080);
        spellGeneratedAttack_ = false;
        bitField2_ = (bitField2_ & ~0x00000100);
        atNightTime_ = false;
        bitField2_ = (bitField2_ & ~0x00000200);
        attackerHasScepter_ = false;
        bitField2_ = (bitField2_ & ~0x00000400);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.internal_static_CMsgDOTACombatLogEntry_descriptor;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgDOTACombatLogEntry getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgDOTACombatLogEntry.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgDOTACombatLogEntry build() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgDOTACombatLogEntry result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgDOTACombatLogEntry buildPartial() {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgDOTACombatLogEntry result = new skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgDOTACombatLogEntry(this);
        int from_bitField0_ = bitField0_;
        int from_bitField1_ = bitField1_;
        int from_bitField2_ = bitField2_;
        int to_bitField0_ = 0;
        int to_bitField1_ = 0;
        int to_bitField2_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.type_ = type_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.targetName_ = targetName_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.targetSourceName_ = targetSourceName_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.attackerName_ = attackerName_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.damageSourceName_ = damageSourceName_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        result.inflictorName_ = inflictorName_;
        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
          to_bitField0_ |= 0x00000040;
        }
        result.isAttackerIllusion_ = isAttackerIllusion_;
        if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
          to_bitField0_ |= 0x00000080;
        }
        result.isAttackerHero_ = isAttackerHero_;
        if (((from_bitField0_ & 0x00000100) == 0x00000100)) {
          to_bitField0_ |= 0x00000100;
        }
        result.isTargetIllusion_ = isTargetIllusion_;
        if (((from_bitField0_ & 0x00000200) == 0x00000200)) {
          to_bitField0_ |= 0x00000200;
        }
        result.isTargetHero_ = isTargetHero_;
        if (((from_bitField0_ & 0x00000400) == 0x00000400)) {
          to_bitField0_ |= 0x00000400;
        }
        result.isVisibleRadiant_ = isVisibleRadiant_;
        if (((from_bitField0_ & 0x00000800) == 0x00000800)) {
          to_bitField0_ |= 0x00000800;
        }
        result.isVisibleDire_ = isVisibleDire_;
        if (((from_bitField0_ & 0x00001000) == 0x00001000)) {
          to_bitField0_ |= 0x00001000;
        }
        result.value_ = value_;
        if (((from_bitField0_ & 0x00002000) == 0x00002000)) {
          to_bitField0_ |= 0x00002000;
        }
        result.health_ = health_;
        if (((from_bitField0_ & 0x00004000) == 0x00004000)) {
          to_bitField0_ |= 0x00004000;
        }
        result.timestamp_ = timestamp_;
        if (((from_bitField0_ & 0x00008000) == 0x00008000)) {
          to_bitField0_ |= 0x00008000;
        }
        result.stunDuration_ = stunDuration_;
        if (((from_bitField0_ & 0x00010000) == 0x00010000)) {
          to_bitField0_ |= 0x00010000;
        }
        result.slowDuration_ = slowDuration_;
        if (((from_bitField0_ & 0x00020000) == 0x00020000)) {
          to_bitField0_ |= 0x00020000;
        }
        result.isAbilityToggleOn_ = isAbilityToggleOn_;
        if (((from_bitField0_ & 0x00040000) == 0x00040000)) {
          to_bitField0_ |= 0x00040000;
        }
        result.isAbilityToggleOff_ = isAbilityToggleOff_;
        if (((from_bitField0_ & 0x00080000) == 0x00080000)) {
          to_bitField0_ |= 0x00080000;
        }
        result.abilityLevel_ = abilityLevel_;
        if (((from_bitField0_ & 0x00100000) == 0x00100000)) {
          to_bitField0_ |= 0x00100000;
        }
        result.locationX_ = locationX_;
        if (((from_bitField0_ & 0x00200000) == 0x00200000)) {
          to_bitField0_ |= 0x00200000;
        }
        result.locationY_ = locationY_;
        if (((from_bitField0_ & 0x00400000) == 0x00400000)) {
          to_bitField0_ |= 0x00400000;
        }
        result.goldReason_ = goldReason_;
        if (((from_bitField0_ & 0x00800000) == 0x00800000)) {
          to_bitField0_ |= 0x00800000;
        }
        result.timestampRaw_ = timestampRaw_;
        if (((from_bitField0_ & 0x01000000) == 0x01000000)) {
          to_bitField0_ |= 0x01000000;
        }
        result.modifierDuration_ = modifierDuration_;
        if (((from_bitField0_ & 0x02000000) == 0x02000000)) {
          to_bitField0_ |= 0x02000000;
        }
        result.xpReason_ = xpReason_;
        if (((from_bitField0_ & 0x04000000) == 0x04000000)) {
          to_bitField0_ |= 0x04000000;
        }
        result.lastHits_ = lastHits_;
        if (((from_bitField0_ & 0x08000000) == 0x08000000)) {
          to_bitField0_ |= 0x08000000;
        }
        result.attackerTeam_ = attackerTeam_;
        if (((from_bitField0_ & 0x10000000) == 0x10000000)) {
          to_bitField0_ |= 0x10000000;
        }
        result.targetTeam_ = targetTeam_;
        if (((from_bitField0_ & 0x20000000) == 0x20000000)) {
          to_bitField0_ |= 0x20000000;
        }
        result.obsWardsPlaced_ = obsWardsPlaced_;
        if (((from_bitField0_ & 0x40000000) == 0x40000000)) {
          to_bitField0_ |= 0x40000000;
        }
        result.assistPlayer0_ = assistPlayer0_;
        if (((from_bitField0_ & 0x80000000) == 0x80000000)) {
          to_bitField0_ |= 0x80000000;
        }
        result.assistPlayer1_ = assistPlayer1_;
        if (((from_bitField1_ & 0x00000001) == 0x00000001)) {
          to_bitField1_ |= 0x00000001;
        }
        result.assistPlayer2_ = assistPlayer2_;
        if (((from_bitField1_ & 0x00000002) == 0x00000002)) {
          to_bitField1_ |= 0x00000002;
        }
        result.assistPlayer3_ = assistPlayer3_;
        if (((from_bitField1_ & 0x00000004) == 0x00000004)) {
          to_bitField1_ |= 0x00000004;
        }
        result.stackCount_ = stackCount_;
        if (((from_bitField1_ & 0x00000008) == 0x00000008)) {
          to_bitField1_ |= 0x00000008;
        }
        result.hiddenModifier_ = hiddenModifier_;
        if (((from_bitField1_ & 0x00000010) == 0x00000010)) {
          to_bitField1_ |= 0x00000010;
        }
        result.isTargetBuilding_ = isTargetBuilding_;
        if (((from_bitField1_ & 0x00000020) == 0x00000020)) {
          to_bitField1_ |= 0x00000020;
        }
        result.neutralCampType_ = neutralCampType_;
        if (((from_bitField1_ & 0x00000040) == 0x00000040)) {
          to_bitField1_ |= 0x00000040;
        }
        result.runeType_ = runeType_;
        if (((bitField1_ & 0x00000080) == 0x00000080)) {
          assistPlayers_ = java.util.Collections.unmodifiableList(assistPlayers_);
          bitField1_ = (bitField1_ & ~0x00000080);
        }
        result.assistPlayers_ = assistPlayers_;
        if (((from_bitField1_ & 0x00000100) == 0x00000100)) {
          to_bitField1_ |= 0x00000080;
        }
        result.isHealSave_ = isHealSave_;
        if (((from_bitField1_ & 0x00000200) == 0x00000200)) {
          to_bitField1_ |= 0x00000100;
        }
        result.isUltimateAbility_ = isUltimateAbility_;
        if (((from_bitField1_ & 0x00000400) == 0x00000400)) {
          to_bitField1_ |= 0x00000200;
        }
        result.attackerHeroLevel_ = attackerHeroLevel_;
        if (((from_bitField1_ & 0x00000800) == 0x00000800)) {
          to_bitField1_ |= 0x00000400;
        }
        result.targetHeroLevel_ = targetHeroLevel_;
        if (((from_bitField1_ & 0x00001000) == 0x00001000)) {
          to_bitField1_ |= 0x00000800;
        }
        result.xpm_ = xpm_;
        if (((from_bitField1_ & 0x00002000) == 0x00002000)) {
          to_bitField1_ |= 0x00001000;
        }
        result.gpm_ = gpm_;
        if (((from_bitField1_ & 0x00004000) == 0x00004000)) {
          to_bitField1_ |= 0x00002000;
        }
        result.eventLocation_ = eventLocation_;
        if (((from_bitField1_ & 0x00008000) == 0x00008000)) {
          to_bitField1_ |= 0x00004000;
        }
        result.targetIsSelf_ = targetIsSelf_;
        if (((from_bitField1_ & 0x00010000) == 0x00010000)) {
          to_bitField1_ |= 0x00008000;
        }
        result.damageType_ = damageType_;
        if (((from_bitField1_ & 0x00020000) == 0x00020000)) {
          to_bitField1_ |= 0x00010000;
        }
        result.invisibilityModifier_ = invisibilityModifier_;
        if (((from_bitField1_ & 0x00040000) == 0x00040000)) {
          to_bitField1_ |= 0x00020000;
        }
        result.damageCategory_ = damageCategory_;
        if (((from_bitField1_ & 0x00080000) == 0x00080000)) {
          to_bitField1_ |= 0x00040000;
        }
        result.networth_ = networth_;
        if (((from_bitField1_ & 0x00100000) == 0x00100000)) {
          to_bitField1_ |= 0x00080000;
        }
        result.buildingType_ = buildingType_;
        if (((from_bitField1_ & 0x00200000) == 0x00200000)) {
          to_bitField1_ |= 0x00100000;
        }
        result.modifierElapsedDuration_ = modifierElapsedDuration_;
        if (((from_bitField1_ & 0x00400000) == 0x00400000)) {
          to_bitField1_ |= 0x00200000;
        }
        result.silenceModifier_ = silenceModifier_;
        if (((from_bitField1_ & 0x00800000) == 0x00800000)) {
          to_bitField1_ |= 0x00400000;
        }
        result.healFromLifesteal_ = healFromLifesteal_;
        if (((from_bitField1_ & 0x01000000) == 0x01000000)) {
          to_bitField1_ |= 0x00800000;
        }
        result.modifierPurged_ = modifierPurged_;
        if (((from_bitField1_ & 0x02000000) == 0x02000000)) {
          to_bitField1_ |= 0x01000000;
        }
        result.spellEvaded_ = spellEvaded_;
        if (((from_bitField1_ & 0x04000000) == 0x04000000)) {
          to_bitField1_ |= 0x02000000;
        }
        result.motionControllerModifier_ = motionControllerModifier_;
        if (((from_bitField1_ & 0x08000000) == 0x08000000)) {
          to_bitField1_ |= 0x04000000;
        }
        result.longRangeKill_ = longRangeKill_;
        if (((from_bitField1_ & 0x10000000) == 0x10000000)) {
          to_bitField1_ |= 0x08000000;
        }
        result.modifierPurgeAbility_ = modifierPurgeAbility_;
        if (((from_bitField1_ & 0x20000000) == 0x20000000)) {
          to_bitField1_ |= 0x10000000;
        }
        result.modifierPurgeNpc_ = modifierPurgeNpc_;
        if (((from_bitField1_ & 0x40000000) == 0x40000000)) {
          to_bitField1_ |= 0x20000000;
        }
        result.rootModifier_ = rootModifier_;
        if (((from_bitField1_ & 0x80000000) == 0x80000000)) {
          to_bitField1_ |= 0x40000000;
        }
        result.totalUnitDeathCount_ = totalUnitDeathCount_;
        if (((from_bitField2_ & 0x00000001) == 0x00000001)) {
          to_bitField1_ |= 0x80000000;
        }
        result.auraModifier_ = auraModifier_;
        if (((from_bitField2_ & 0x00000002) == 0x00000002)) {
          to_bitField2_ |= 0x00000001;
        }
        result.armorDebuffModifier_ = armorDebuffModifier_;
        if (((from_bitField2_ & 0x00000004) == 0x00000004)) {
          to_bitField2_ |= 0x00000002;
        }
        result.noPhysicalDamageModifier_ = noPhysicalDamageModifier_;
        if (((from_bitField2_ & 0x00000008) == 0x00000008)) {
          to_bitField2_ |= 0x00000004;
        }
        result.modifierAbility_ = modifierAbility_;
        if (((from_bitField2_ & 0x00000010) == 0x00000010)) {
          to_bitField2_ |= 0x00000008;
        }
        result.modifierHidden_ = modifierHidden_;
        if (((from_bitField2_ & 0x00000020) == 0x00000020)) {
          to_bitField2_ |= 0x00000010;
        }
        result.inflictorIsStolenAbility_ = inflictorIsStolenAbility_;
        if (((from_bitField2_ & 0x00000040) == 0x00000040)) {
          to_bitField2_ |= 0x00000020;
        }
        result.killEaterEvent_ = killEaterEvent_;
        if (((from_bitField2_ & 0x00000080) == 0x00000080)) {
          to_bitField2_ |= 0x00000040;
        }
        result.unitStatusLabel_ = unitStatusLabel_;
        if (((from_bitField2_ & 0x00000100) == 0x00000100)) {
          to_bitField2_ |= 0x00000080;
        }
        result.spellGeneratedAttack_ = spellGeneratedAttack_;
        if (((from_bitField2_ & 0x00000200) == 0x00000200)) {
          to_bitField2_ |= 0x00000100;
        }
        result.atNightTime_ = atNightTime_;
        if (((from_bitField2_ & 0x00000400) == 0x00000400)) {
          to_bitField2_ |= 0x00000200;
        }
        result.attackerHasScepter_ = attackerHasScepter_;
        result.bitField0_ = to_bitField0_;
        result.bitField1_ = to_bitField1_;
        result.bitField2_ = to_bitField2_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgDOTACombatLogEntry) {
          return mergeFrom((skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgDOTACombatLogEntry)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgDOTACombatLogEntry other) {
        if (other == skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgDOTACombatLogEntry.getDefaultInstance()) return this;
        if (other.hasType()) {
          setType(other.getType());
        }
        if (other.hasTargetName()) {
          setTargetName(other.getTargetName());
        }
        if (other.hasTargetSourceName()) {
          setTargetSourceName(other.getTargetSourceName());
        }
        if (other.hasAttackerName()) {
          setAttackerName(other.getAttackerName());
        }
        if (other.hasDamageSourceName()) {
          setDamageSourceName(other.getDamageSourceName());
        }
        if (other.hasInflictorName()) {
          setInflictorName(other.getInflictorName());
        }
        if (other.hasIsAttackerIllusion()) {
          setIsAttackerIllusion(other.getIsAttackerIllusion());
        }
        if (other.hasIsAttackerHero()) {
          setIsAttackerHero(other.getIsAttackerHero());
        }
        if (other.hasIsTargetIllusion()) {
          setIsTargetIllusion(other.getIsTargetIllusion());
        }
        if (other.hasIsTargetHero()) {
          setIsTargetHero(other.getIsTargetHero());
        }
        if (other.hasIsVisibleRadiant()) {
          setIsVisibleRadiant(other.getIsVisibleRadiant());
        }
        if (other.hasIsVisibleDire()) {
          setIsVisibleDire(other.getIsVisibleDire());
        }
        if (other.hasValue()) {
          setValue(other.getValue());
        }
        if (other.hasHealth()) {
          setHealth(other.getHealth());
        }
        if (other.hasTimestamp()) {
          setTimestamp(other.getTimestamp());
        }
        if (other.hasStunDuration()) {
          setStunDuration(other.getStunDuration());
        }
        if (other.hasSlowDuration()) {
          setSlowDuration(other.getSlowDuration());
        }
        if (other.hasIsAbilityToggleOn()) {
          setIsAbilityToggleOn(other.getIsAbilityToggleOn());
        }
        if (other.hasIsAbilityToggleOff()) {
          setIsAbilityToggleOff(other.getIsAbilityToggleOff());
        }
        if (other.hasAbilityLevel()) {
          setAbilityLevel(other.getAbilityLevel());
        }
        if (other.hasLocationX()) {
          setLocationX(other.getLocationX());
        }
        if (other.hasLocationY()) {
          setLocationY(other.getLocationY());
        }
        if (other.hasGoldReason()) {
          setGoldReason(other.getGoldReason());
        }
        if (other.hasTimestampRaw()) {
          setTimestampRaw(other.getTimestampRaw());
        }
        if (other.hasModifierDuration()) {
          setModifierDuration(other.getModifierDuration());
        }
        if (other.hasXpReason()) {
          setXpReason(other.getXpReason());
        }
        if (other.hasLastHits()) {
          setLastHits(other.getLastHits());
        }
        if (other.hasAttackerTeam()) {
          setAttackerTeam(other.getAttackerTeam());
        }
        if (other.hasTargetTeam()) {
          setTargetTeam(other.getTargetTeam());
        }
        if (other.hasObsWardsPlaced()) {
          setObsWardsPlaced(other.getObsWardsPlaced());
        }
        if (other.hasAssistPlayer0()) {
          setAssistPlayer0(other.getAssistPlayer0());
        }
        if (other.hasAssistPlayer1()) {
          setAssistPlayer1(other.getAssistPlayer1());
        }
        if (other.hasAssistPlayer2()) {
          setAssistPlayer2(other.getAssistPlayer2());
        }
        if (other.hasAssistPlayer3()) {
          setAssistPlayer3(other.getAssistPlayer3());
        }
        if (other.hasStackCount()) {
          setStackCount(other.getStackCount());
        }
        if (other.hasHiddenModifier()) {
          setHiddenModifier(other.getHiddenModifier());
        }
        if (other.hasIsTargetBuilding()) {
          setIsTargetBuilding(other.getIsTargetBuilding());
        }
        if (other.hasNeutralCampType()) {
          setNeutralCampType(other.getNeutralCampType());
        }
        if (other.hasRuneType()) {
          setRuneType(other.getRuneType());
        }
        if (!other.assistPlayers_.isEmpty()) {
          if (assistPlayers_.isEmpty()) {
            assistPlayers_ = other.assistPlayers_;
            bitField1_ = (bitField1_ & ~0x00000080);
          } else {
            ensureAssistPlayersIsMutable();
            assistPlayers_.addAll(other.assistPlayers_);
          }
          onChanged();
        }
        if (other.hasIsHealSave()) {
          setIsHealSave(other.getIsHealSave());
        }
        if (other.hasIsUltimateAbility()) {
          setIsUltimateAbility(other.getIsUltimateAbility());
        }
        if (other.hasAttackerHeroLevel()) {
          setAttackerHeroLevel(other.getAttackerHeroLevel());
        }
        if (other.hasTargetHeroLevel()) {
          setTargetHeroLevel(other.getTargetHeroLevel());
        }
        if (other.hasXpm()) {
          setXpm(other.getXpm());
        }
        if (other.hasGpm()) {
          setGpm(other.getGpm());
        }
        if (other.hasEventLocation()) {
          setEventLocation(other.getEventLocation());
        }
        if (other.hasTargetIsSelf()) {
          setTargetIsSelf(other.getTargetIsSelf());
        }
        if (other.hasDamageType()) {
          setDamageType(other.getDamageType());
        }
        if (other.hasInvisibilityModifier()) {
          setInvisibilityModifier(other.getInvisibilityModifier());
        }
        if (other.hasDamageCategory()) {
          setDamageCategory(other.getDamageCategory());
        }
        if (other.hasNetworth()) {
          setNetworth(other.getNetworth());
        }
        if (other.hasBuildingType()) {
          setBuildingType(other.getBuildingType());
        }
        if (other.hasModifierElapsedDuration()) {
          setModifierElapsedDuration(other.getModifierElapsedDuration());
        }
        if (other.hasSilenceModifier()) {
          setSilenceModifier(other.getSilenceModifier());
        }
        if (other.hasHealFromLifesteal()) {
          setHealFromLifesteal(other.getHealFromLifesteal());
        }
        if (other.hasModifierPurged()) {
          setModifierPurged(other.getModifierPurged());
        }
        if (other.hasSpellEvaded()) {
          setSpellEvaded(other.getSpellEvaded());
        }
        if (other.hasMotionControllerModifier()) {
          setMotionControllerModifier(other.getMotionControllerModifier());
        }
        if (other.hasLongRangeKill()) {
          setLongRangeKill(other.getLongRangeKill());
        }
        if (other.hasModifierPurgeAbility()) {
          setModifierPurgeAbility(other.getModifierPurgeAbility());
        }
        if (other.hasModifierPurgeNpc()) {
          setModifierPurgeNpc(other.getModifierPurgeNpc());
        }
        if (other.hasRootModifier()) {
          setRootModifier(other.getRootModifier());
        }
        if (other.hasTotalUnitDeathCount()) {
          setTotalUnitDeathCount(other.getTotalUnitDeathCount());
        }
        if (other.hasAuraModifier()) {
          setAuraModifier(other.getAuraModifier());
        }
        if (other.hasArmorDebuffModifier()) {
          setArmorDebuffModifier(other.getArmorDebuffModifier());
        }
        if (other.hasNoPhysicalDamageModifier()) {
          setNoPhysicalDamageModifier(other.getNoPhysicalDamageModifier());
        }
        if (other.hasModifierAbility()) {
          setModifierAbility(other.getModifierAbility());
        }
        if (other.hasModifierHidden()) {
          setModifierHidden(other.getModifierHidden());
        }
        if (other.hasInflictorIsStolenAbility()) {
          setInflictorIsStolenAbility(other.getInflictorIsStolenAbility());
        }
        if (other.hasKillEaterEvent()) {
          setKillEaterEvent(other.getKillEaterEvent());
        }
        if (other.hasUnitStatusLabel()) {
          setUnitStatusLabel(other.getUnitStatusLabel());
        }
        if (other.hasSpellGeneratedAttack()) {
          setSpellGeneratedAttack(other.getSpellGeneratedAttack());
        }
        if (other.hasAtNightTime()) {
          setAtNightTime(other.getAtNightTime());
        }
        if (other.hasAttackerHasScepter()) {
          setAttackerHasScepter(other.getAttackerHasScepter());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgDOTACombatLogEntry parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.DotaUserMessages.CMsgDOTACombatLogEntry) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;
      private int bitField1_;
      private int bitField2_;

      private skadistats.clarity.wire.common.proto.DotaUserMessages.DOTA_COMBATLOG_TYPES type_ = skadistats.clarity.wire.common.proto.DotaUserMessages.DOTA_COMBATLOG_TYPES.DOTA_COMBATLOG_DAMAGE;
      /**
       * optional .DOTA_COMBATLOG_TYPES type = 1 [default = DOTA_COMBATLOG_DAMAGE];
       */
      public boolean hasType() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional .DOTA_COMBATLOG_TYPES type = 1 [default = DOTA_COMBATLOG_DAMAGE];
       */
      public skadistats.clarity.wire.common.proto.DotaUserMessages.DOTA_COMBATLOG_TYPES getType() {
        return type_;
      }
      /**
       * optional .DOTA_COMBATLOG_TYPES type = 1 [default = DOTA_COMBATLOG_DAMAGE];
       */
      public Builder setType(skadistats.clarity.wire.common.proto.DotaUserMessages.DOTA_COMBATLOG_TYPES value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        type_ = value;
        onChanged();
        return this;
      }
      /**
       * optional .DOTA_COMBATLOG_TYPES type = 1 [default = DOTA_COMBATLOG_DAMAGE];
       */
      public Builder clearType() {
        bitField0_ = (bitField0_ & ~0x00000001);
        type_ = skadistats.clarity.wire.common.proto.DotaUserMessages.DOTA_COMBATLOG_TYPES.DOTA_COMBATLOG_DAMAGE;
        onChanged();
        return this;
      }

      private int targetName_ ;
      /**
       * optional uint32 target_name = 2;
       */
      public boolean hasTargetName() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional uint32 target_name = 2;
       */
      public int getTargetName() {
        return targetName_;
      }
      /**
       * optional uint32 target_name = 2;
       */
      public Builder setTargetName(int value) {
        bitField0_ |= 0x00000002;
        targetName_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 target_name = 2;
       */
      public Builder clearTargetName() {
        bitField0_ = (bitField0_ & ~0x00000002);
        targetName_ = 0;
        onChanged();
        return this;
      }

      private int targetSourceName_ ;
      /**
       * optional uint32 target_source_name = 3;
       */
      public boolean hasTargetSourceName() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional uint32 target_source_name = 3;
       */
      public int getTargetSourceName() {
        return targetSourceName_;
      }
      /**
       * optional uint32 target_source_name = 3;
       */
      public Builder setTargetSourceName(int value) {
        bitField0_ |= 0x00000004;
        targetSourceName_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 target_source_name = 3;
       */
      public Builder clearTargetSourceName() {
        bitField0_ = (bitField0_ & ~0x00000004);
        targetSourceName_ = 0;
        onChanged();
        return this;
      }

      private int attackerName_ ;
      /**
       * optional uint32 attacker_name = 4;
       */
      public boolean hasAttackerName() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional uint32 attacker_name = 4;
       */
      public int getAttackerName() {
        return attackerName_;
      }
      /**
       * optional uint32 attacker_name = 4;
       */
      public Builder setAttackerName(int value) {
        bitField0_ |= 0x00000008;
        attackerName_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 attacker_name = 4;
       */
      public Builder clearAttackerName() {
        bitField0_ = (bitField0_ & ~0x00000008);
        attackerName_ = 0;
        onChanged();
        return this;
      }

      private int damageSourceName_ ;
      /**
       * optional uint32 damage_source_name = 5;
       */
      public boolean hasDamageSourceName() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * optional uint32 damage_source_name = 5;
       */
      public int getDamageSourceName() {
        return damageSourceName_;
      }
      /**
       * optional uint32 damage_source_name = 5;
       */
      public Builder setDamageSourceName(int value) {
        bitField0_ |= 0x00000010;
        damageSourceName_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 damage_source_name = 5;
       */
      public Builder clearDamageSourceName() {
        bitField0_ = (bitField0_ & ~0x00000010);
        damageSourceName_ = 0;
        onChanged();
        return this;
      }

      private int inflictorName_ ;
      /**
       * optional uint32 inflictor_name = 6;
       */
      public boolean hasInflictorName() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * optional uint32 inflictor_name = 6;
       */
      public int getInflictorName() {
        return inflictorName_;
      }
      /**
       * optional uint32 inflictor_name = 6;
       */
      public Builder setInflictorName(int value) {
        bitField0_ |= 0x00000020;
        inflictorName_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 inflictor_name = 6;
       */
      public Builder clearInflictorName() {
        bitField0_ = (bitField0_ & ~0x00000020);
        inflictorName_ = 0;
        onChanged();
        return this;
      }

      private boolean isAttackerIllusion_ ;
      /**
       * optional bool is_attacker_illusion = 7;
       */
      public boolean hasIsAttackerIllusion() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      /**
       * optional bool is_attacker_illusion = 7;
       */
      public boolean getIsAttackerIllusion() {
        return isAttackerIllusion_;
      }
      /**
       * optional bool is_attacker_illusion = 7;
       */
      public Builder setIsAttackerIllusion(boolean value) {
        bitField0_ |= 0x00000040;
        isAttackerIllusion_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool is_attacker_illusion = 7;
       */
      public Builder clearIsAttackerIllusion() {
        bitField0_ = (bitField0_ & ~0x00000040);
        isAttackerIllusion_ = false;
        onChanged();
        return this;
      }

      private boolean isAttackerHero_ ;
      /**
       * optional bool is_attacker_hero = 8;
       */
      public boolean hasIsAttackerHero() {
        return ((bitField0_ & 0x00000080) == 0x00000080);
      }
      /**
       * optional bool is_attacker_hero = 8;
       */
      public boolean getIsAttackerHero() {
        return isAttackerHero_;
      }
      /**
       * optional bool is_attacker_hero = 8;
       */
      public Builder setIsAttackerHero(boolean value) {
        bitField0_ |= 0x00000080;
        isAttackerHero_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool is_attacker_hero = 8;
       */
      public Builder clearIsAttackerHero() {
        bitField0_ = (bitField0_ & ~0x00000080);
        isAttackerHero_ = false;
        onChanged();
        return this;
      }

      private boolean isTargetIllusion_ ;
      /**
       * optional bool is_target_illusion = 9;
       */
      public boolean hasIsTargetIllusion() {
        return ((bitField0_ & 0x00000100) == 0x00000100);
      }
      /**
       * optional bool is_target_illusion = 9;
       */
      public boolean getIsTargetIllusion() {
        return isTargetIllusion_;
      }
      /**
       * optional bool is_target_illusion = 9;
       */
      public Builder setIsTargetIllusion(boolean value) {
        bitField0_ |= 0x00000100;
        isTargetIllusion_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool is_target_illusion = 9;
       */
      public Builder clearIsTargetIllusion() {
        bitField0_ = (bitField0_ & ~0x00000100);
        isTargetIllusion_ = false;
        onChanged();
        return this;
      }

      private boolean isTargetHero_ ;
      /**
       * optional bool is_target_hero = 10;
       */
      public boolean hasIsTargetHero() {
        return ((bitField0_ & 0x00000200) == 0x00000200);
      }
      /**
       * optional bool is_target_hero = 10;
       */
      public boolean getIsTargetHero() {
        return isTargetHero_;
      }
      /**
       * optional bool is_target_hero = 10;
       */
      public Builder setIsTargetHero(boolean value) {
        bitField0_ |= 0x00000200;
        isTargetHero_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool is_target_hero = 10;
       */
      public Builder clearIsTargetHero() {
        bitField0_ = (bitField0_ & ~0x00000200);
        isTargetHero_ = false;
        onChanged();
        return this;
      }

      private boolean isVisibleRadiant_ ;
      /**
       * optional bool is_visible_radiant = 11;
       */
      public boolean hasIsVisibleRadiant() {
        return ((bitField0_ & 0x00000400) == 0x00000400);
      }
      /**
       * optional bool is_visible_radiant = 11;
       */
      public boolean getIsVisibleRadiant() {
        return isVisibleRadiant_;
      }
      /**
       * optional bool is_visible_radiant = 11;
       */
      public Builder setIsVisibleRadiant(boolean value) {
        bitField0_ |= 0x00000400;
        isVisibleRadiant_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool is_visible_radiant = 11;
       */
      public Builder clearIsVisibleRadiant() {
        bitField0_ = (bitField0_ & ~0x00000400);
        isVisibleRadiant_ = false;
        onChanged();
        return this;
      }

      private boolean isVisibleDire_ ;
      /**
       * optional bool is_visible_dire = 12;
       */
      public boolean hasIsVisibleDire() {
        return ((bitField0_ & 0x00000800) == 0x00000800);
      }
      /**
       * optional bool is_visible_dire = 12;
       */
      public boolean getIsVisibleDire() {
        return isVisibleDire_;
      }
      /**
       * optional bool is_visible_dire = 12;
       */
      public Builder setIsVisibleDire(boolean value) {
        bitField0_ |= 0x00000800;
        isVisibleDire_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool is_visible_dire = 12;
       */
      public Builder clearIsVisibleDire() {
        bitField0_ = (bitField0_ & ~0x00000800);
        isVisibleDire_ = false;
        onChanged();
        return this;
      }

      private int value_ ;
      /**
       * optional uint32 value = 13;
       */
      public boolean hasValue() {
        return ((bitField0_ & 0x00001000) == 0x00001000);
      }
      /**
       * optional uint32 value = 13;
       */
      public int getValue() {
        return value_;
      }
      /**
       * optional uint32 value = 13;
       */
      public Builder setValue(int value) {
        bitField0_ |= 0x00001000;
        value_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 value = 13;
       */
      public Builder clearValue() {
        bitField0_ = (bitField0_ & ~0x00001000);
        value_ = 0;
        onChanged();
        return this;
      }

      private int health_ ;
      /**
       * optional int32 health = 14;
       */
      public boolean hasHealth() {
        return ((bitField0_ & 0x00002000) == 0x00002000);
      }
      /**
       * optional int32 health = 14;
       */
      public int getHealth() {
        return health_;
      }
      /**
       * optional int32 health = 14;
       */
      public Builder setHealth(int value) {
        bitField0_ |= 0x00002000;
        health_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 health = 14;
       */
      public Builder clearHealth() {
        bitField0_ = (bitField0_ & ~0x00002000);
        health_ = 0;
        onChanged();
        return this;
      }

      private float timestamp_ ;
      /**
       * optional float timestamp = 15;
       */
      public boolean hasTimestamp() {
        return ((bitField0_ & 0x00004000) == 0x00004000);
      }
      /**
       * optional float timestamp = 15;
       */
      public float getTimestamp() {
        return timestamp_;
      }
      /**
       * optional float timestamp = 15;
       */
      public Builder setTimestamp(float value) {
        bitField0_ |= 0x00004000;
        timestamp_ = value;
        onChanged();
        return this;
      }
      /**
       * optional float timestamp = 15;
       */
      public Builder clearTimestamp() {
        bitField0_ = (bitField0_ & ~0x00004000);
        timestamp_ = 0F;
        onChanged();
        return this;
      }

      private float stunDuration_ ;
      /**
       * optional float stun_duration = 16;
       */
      public boolean hasStunDuration() {
        return ((bitField0_ & 0x00008000) == 0x00008000);
      }
      /**
       * optional float stun_duration = 16;
       */
      public float getStunDuration() {
        return stunDuration_;
      }
      /**
       * optional float stun_duration = 16;
       */
      public Builder setStunDuration(float value) {
        bitField0_ |= 0x00008000;
        stunDuration_ = value;
        onChanged();
        return this;
      }
      /**
       * optional float stun_duration = 16;
       */
      public Builder clearStunDuration() {
        bitField0_ = (bitField0_ & ~0x00008000);
        stunDuration_ = 0F;
        onChanged();
        return this;
      }

      private float slowDuration_ ;
      /**
       * optional float slow_duration = 17;
       */
      public boolean hasSlowDuration() {
        return ((bitField0_ & 0x00010000) == 0x00010000);
      }
      /**
       * optional float slow_duration = 17;
       */
      public float getSlowDuration() {
        return slowDuration_;
      }
      /**
       * optional float slow_duration = 17;
       */
      public Builder setSlowDuration(float value) {
        bitField0_ |= 0x00010000;
        slowDuration_ = value;
        onChanged();
        return this;
      }
      /**
       * optional float slow_duration = 17;
       */
      public Builder clearSlowDuration() {
        bitField0_ = (bitField0_ & ~0x00010000);
        slowDuration_ = 0F;
        onChanged();
        return this;
      }

      private boolean isAbilityToggleOn_ ;
      /**
       * optional bool is_ability_toggle_on = 18;
       */
      public boolean hasIsAbilityToggleOn() {
        return ((bitField0_ & 0x00020000) == 0x00020000);
      }
      /**
       * optional bool is_ability_toggle_on = 18;
       */
      public boolean getIsAbilityToggleOn() {
        return isAbilityToggleOn_;
      }
      /**
       * optional bool is_ability_toggle_on = 18;
       */
      public Builder setIsAbilityToggleOn(boolean value) {
        bitField0_ |= 0x00020000;
        isAbilityToggleOn_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool is_ability_toggle_on = 18;
       */
      public Builder clearIsAbilityToggleOn() {
        bitField0_ = (bitField0_ & ~0x00020000);
        isAbilityToggleOn_ = false;
        onChanged();
        return this;
      }

      private boolean isAbilityToggleOff_ ;
      /**
       * optional bool is_ability_toggle_off = 19;
       */
      public boolean hasIsAbilityToggleOff() {
        return ((bitField0_ & 0x00040000) == 0x00040000);
      }
      /**
       * optional bool is_ability_toggle_off = 19;
       */
      public boolean getIsAbilityToggleOff() {
        return isAbilityToggleOff_;
      }
      /**
       * optional bool is_ability_toggle_off = 19;
       */
      public Builder setIsAbilityToggleOff(boolean value) {
        bitField0_ |= 0x00040000;
        isAbilityToggleOff_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool is_ability_toggle_off = 19;
       */
      public Builder clearIsAbilityToggleOff() {
        bitField0_ = (bitField0_ & ~0x00040000);
        isAbilityToggleOff_ = false;
        onChanged();
        return this;
      }

      private int abilityLevel_ ;
      /**
       * optional uint32 ability_level = 20;
       */
      public boolean hasAbilityLevel() {
        return ((bitField0_ & 0x00080000) == 0x00080000);
      }
      /**
       * optional uint32 ability_level = 20;
       */
      public int getAbilityLevel() {
        return abilityLevel_;
      }
      /**
       * optional uint32 ability_level = 20;
       */
      public Builder setAbilityLevel(int value) {
        bitField0_ |= 0x00080000;
        abilityLevel_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 ability_level = 20;
       */
      public Builder clearAbilityLevel() {
        bitField0_ = (bitField0_ & ~0x00080000);
        abilityLevel_ = 0;
        onChanged();
        return this;
      }

      private float locationX_ ;
      /**
       * optional float location_x = 21;
       */
      public boolean hasLocationX() {
        return ((bitField0_ & 0x00100000) == 0x00100000);
      }
      /**
       * optional float location_x = 21;
       */
      public float getLocationX() {
        return locationX_;
      }
      /**
       * optional float location_x = 21;
       */
      public Builder setLocationX(float value) {
        bitField0_ |= 0x00100000;
        locationX_ = value;
        onChanged();
        return this;
      }
      /**
       * optional float location_x = 21;
       */
      public Builder clearLocationX() {
        bitField0_ = (bitField0_ & ~0x00100000);
        locationX_ = 0F;
        onChanged();
        return this;
      }

      private float locationY_ ;
      /**
       * optional float location_y = 22;
       */
      public boolean hasLocationY() {
        return ((bitField0_ & 0x00200000) == 0x00200000);
      }
      /**
       * optional float location_y = 22;
       */
      public float getLocationY() {
        return locationY_;
      }
      /**
       * optional float location_y = 22;
       */
      public Builder setLocationY(float value) {
        bitField0_ |= 0x00200000;
        locationY_ = value;
        onChanged();
        return this;
      }
      /**
       * optional float location_y = 22;
       */
      public Builder clearLocationY() {
        bitField0_ = (bitField0_ & ~0x00200000);
        locationY_ = 0F;
        onChanged();
        return this;
      }

      private int goldReason_ ;
      /**
       * optional uint32 gold_reason = 23;
       */
      public boolean hasGoldReason() {
        return ((bitField0_ & 0x00400000) == 0x00400000);
      }
      /**
       * optional uint32 gold_reason = 23;
       */
      public int getGoldReason() {
        return goldReason_;
      }
      /**
       * optional uint32 gold_reason = 23;
       */
      public Builder setGoldReason(int value) {
        bitField0_ |= 0x00400000;
        goldReason_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 gold_reason = 23;
       */
      public Builder clearGoldReason() {
        bitField0_ = (bitField0_ & ~0x00400000);
        goldReason_ = 0;
        onChanged();
        return this;
      }

      private float timestampRaw_ ;
      /**
       * optional float timestamp_raw = 24;
       */
      public boolean hasTimestampRaw() {
        return ((bitField0_ & 0x00800000) == 0x00800000);
      }
      /**
       * optional float timestamp_raw = 24;
       */
      public float getTimestampRaw() {
        return timestampRaw_;
      }
      /**
       * optional float timestamp_raw = 24;
       */
      public Builder setTimestampRaw(float value) {
        bitField0_ |= 0x00800000;
        timestampRaw_ = value;
        onChanged();
        return this;
      }
      /**
       * optional float timestamp_raw = 24;
       */
      public Builder clearTimestampRaw() {
        bitField0_ = (bitField0_ & ~0x00800000);
        timestampRaw_ = 0F;
        onChanged();
        return this;
      }

      private float modifierDuration_ ;
      /**
       * optional float modifier_duration = 25;
       */
      public boolean hasModifierDuration() {
        return ((bitField0_ & 0x01000000) == 0x01000000);
      }
      /**
       * optional float modifier_duration = 25;
       */
      public float getModifierDuration() {
        return modifierDuration_;
      }
      /**
       * optional float modifier_duration = 25;
       */
      public Builder setModifierDuration(float value) {
        bitField0_ |= 0x01000000;
        modifierDuration_ = value;
        onChanged();
        return this;
      }
      /**
       * optional float modifier_duration = 25;
       */
      public Builder clearModifierDuration() {
        bitField0_ = (bitField0_ & ~0x01000000);
        modifierDuration_ = 0F;
        onChanged();
        return this;
      }

      private int xpReason_ ;
      /**
       * optional uint32 xp_reason = 26;
       */
      public boolean hasXpReason() {
        return ((bitField0_ & 0x02000000) == 0x02000000);
      }
      /**
       * optional uint32 xp_reason = 26;
       */
      public int getXpReason() {
        return xpReason_;
      }
      /**
       * optional uint32 xp_reason = 26;
       */
      public Builder setXpReason(int value) {
        bitField0_ |= 0x02000000;
        xpReason_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 xp_reason = 26;
       */
      public Builder clearXpReason() {
        bitField0_ = (bitField0_ & ~0x02000000);
        xpReason_ = 0;
        onChanged();
        return this;
      }

      private int lastHits_ ;
      /**
       * optional uint32 last_hits = 27;
       */
      public boolean hasLastHits() {
        return ((bitField0_ & 0x04000000) == 0x04000000);
      }
      /**
       * optional uint32 last_hits = 27;
       */
      public int getLastHits() {
        return lastHits_;
      }
      /**
       * optional uint32 last_hits = 27;
       */
      public Builder setLastHits(int value) {
        bitField0_ |= 0x04000000;
        lastHits_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 last_hits = 27;
       */
      public Builder clearLastHits() {
        bitField0_ = (bitField0_ & ~0x04000000);
        lastHits_ = 0;
        onChanged();
        return this;
      }

      private int attackerTeam_ ;
      /**
       * optional uint32 attacker_team = 28;
       */
      public boolean hasAttackerTeam() {
        return ((bitField0_ & 0x08000000) == 0x08000000);
      }
      /**
       * optional uint32 attacker_team = 28;
       */
      public int getAttackerTeam() {
        return attackerTeam_;
      }
      /**
       * optional uint32 attacker_team = 28;
       */
      public Builder setAttackerTeam(int value) {
        bitField0_ |= 0x08000000;
        attackerTeam_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 attacker_team = 28;
       */
      public Builder clearAttackerTeam() {
        bitField0_ = (bitField0_ & ~0x08000000);
        attackerTeam_ = 0;
        onChanged();
        return this;
      }

      private int targetTeam_ ;
      /**
       * optional uint32 target_team = 29;
       */
      public boolean hasTargetTeam() {
        return ((bitField0_ & 0x10000000) == 0x10000000);
      }
      /**
       * optional uint32 target_team = 29;
       */
      public int getTargetTeam() {
        return targetTeam_;
      }
      /**
       * optional uint32 target_team = 29;
       */
      public Builder setTargetTeam(int value) {
        bitField0_ |= 0x10000000;
        targetTeam_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 target_team = 29;
       */
      public Builder clearTargetTeam() {
        bitField0_ = (bitField0_ & ~0x10000000);
        targetTeam_ = 0;
        onChanged();
        return this;
      }

      private int obsWardsPlaced_ ;
      /**
       * optional uint32 obs_wards_placed = 30;
       */
      public boolean hasObsWardsPlaced() {
        return ((bitField0_ & 0x20000000) == 0x20000000);
      }
      /**
       * optional uint32 obs_wards_placed = 30;
       */
      public int getObsWardsPlaced() {
        return obsWardsPlaced_;
      }
      /**
       * optional uint32 obs_wards_placed = 30;
       */
      public Builder setObsWardsPlaced(int value) {
        bitField0_ |= 0x20000000;
        obsWardsPlaced_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 obs_wards_placed = 30;
       */
      public Builder clearObsWardsPlaced() {
        bitField0_ = (bitField0_ & ~0x20000000);
        obsWardsPlaced_ = 0;
        onChanged();
        return this;
      }

      private int assistPlayer0_ ;
      /**
       * optional uint32 assist_player0 = 31;
       */
      public boolean hasAssistPlayer0() {
        return ((bitField0_ & 0x40000000) == 0x40000000);
      }
      /**
       * optional uint32 assist_player0 = 31;
       */
      public int getAssistPlayer0() {
        return assistPlayer0_;
      }
      /**
       * optional uint32 assist_player0 = 31;
       */
      public Builder setAssistPlayer0(int value) {
        bitField0_ |= 0x40000000;
        assistPlayer0_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 assist_player0 = 31;
       */
      public Builder clearAssistPlayer0() {
        bitField0_ = (bitField0_ & ~0x40000000);
        assistPlayer0_ = 0;
        onChanged();
        return this;
      }

      private int assistPlayer1_ ;
      /**
       * optional uint32 assist_player1 = 32;
       */
      public boolean hasAssistPlayer1() {
        return ((bitField0_ & 0x80000000) == 0x80000000);
      }
      /**
       * optional uint32 assist_player1 = 32;
       */
      public int getAssistPlayer1() {
        return assistPlayer1_;
      }
      /**
       * optional uint32 assist_player1 = 32;
       */
      public Builder setAssistPlayer1(int value) {
        bitField0_ |= 0x80000000;
        assistPlayer1_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 assist_player1 = 32;
       */
      public Builder clearAssistPlayer1() {
        bitField0_ = (bitField0_ & ~0x80000000);
        assistPlayer1_ = 0;
        onChanged();
        return this;
      }

      private int assistPlayer2_ ;
      /**
       * optional uint32 assist_player2 = 33;
       */
      public boolean hasAssistPlayer2() {
        return ((bitField1_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional uint32 assist_player2 = 33;
       */
      public int getAssistPlayer2() {
        return assistPlayer2_;
      }
      /**
       * optional uint32 assist_player2 = 33;
       */
      public Builder setAssistPlayer2(int value) {
        bitField1_ |= 0x00000001;
        assistPlayer2_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 assist_player2 = 33;
       */
      public Builder clearAssistPlayer2() {
        bitField1_ = (bitField1_ & ~0x00000001);
        assistPlayer2_ = 0;
        onChanged();
        return this;
      }

      private int assistPlayer3_ ;
      /**
       * optional uint32 assist_player3 = 34;
       */
      public boolean hasAssistPlayer3() {
        return ((bitField1_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional uint32 assist_player3 = 34;
       */
      public int getAssistPlayer3() {
        return assistPlayer3_;
      }
      /**
       * optional uint32 assist_player3 = 34;
       */
      public Builder setAssistPlayer3(int value) {
        bitField1_ |= 0x00000002;
        assistPlayer3_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 assist_player3 = 34;
       */
      public Builder clearAssistPlayer3() {
        bitField1_ = (bitField1_ & ~0x00000002);
        assistPlayer3_ = 0;
        onChanged();
        return this;
      }

      private int stackCount_ ;
      /**
       * optional uint32 stack_count = 35;
       */
      public boolean hasStackCount() {
        return ((bitField1_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional uint32 stack_count = 35;
       */
      public int getStackCount() {
        return stackCount_;
      }
      /**
       * optional uint32 stack_count = 35;
       */
      public Builder setStackCount(int value) {
        bitField1_ |= 0x00000004;
        stackCount_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 stack_count = 35;
       */
      public Builder clearStackCount() {
        bitField1_ = (bitField1_ & ~0x00000004);
        stackCount_ = 0;
        onChanged();
        return this;
      }

      private boolean hiddenModifier_ ;
      /**
       * optional bool hidden_modifier = 36;
       */
      public boolean hasHiddenModifier() {
        return ((bitField1_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional bool hidden_modifier = 36;
       */
      public boolean getHiddenModifier() {
        return hiddenModifier_;
      }
      /**
       * optional bool hidden_modifier = 36;
       */
      public Builder setHiddenModifier(boolean value) {
        bitField1_ |= 0x00000008;
        hiddenModifier_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool hidden_modifier = 36;
       */
      public Builder clearHiddenModifier() {
        bitField1_ = (bitField1_ & ~0x00000008);
        hiddenModifier_ = false;
        onChanged();
        return this;
      }

      private boolean isTargetBuilding_ ;
      /**
       * optional bool is_target_building = 37;
       */
      public boolean hasIsTargetBuilding() {
        return ((bitField1_ & 0x00000010) == 0x00000010);
      }
      /**
       * optional bool is_target_building = 37;
       */
      public boolean getIsTargetBuilding() {
        return isTargetBuilding_;
      }
      /**
       * optional bool is_target_building = 37;
       */
      public Builder setIsTargetBuilding(boolean value) {
        bitField1_ |= 0x00000010;
        isTargetBuilding_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool is_target_building = 37;
       */
      public Builder clearIsTargetBuilding() {
        bitField1_ = (bitField1_ & ~0x00000010);
        isTargetBuilding_ = false;
        onChanged();
        return this;
      }

      private int neutralCampType_ ;
      /**
       * optional uint32 neutral_camp_type = 38;
       */
      public boolean hasNeutralCampType() {
        return ((bitField1_ & 0x00000020) == 0x00000020);
      }
      /**
       * optional uint32 neutral_camp_type = 38;
       */
      public int getNeutralCampType() {
        return neutralCampType_;
      }
      /**
       * optional uint32 neutral_camp_type = 38;
       */
      public Builder setNeutralCampType(int value) {
        bitField1_ |= 0x00000020;
        neutralCampType_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 neutral_camp_type = 38;
       */
      public Builder clearNeutralCampType() {
        bitField1_ = (bitField1_ & ~0x00000020);
        neutralCampType_ = 0;
        onChanged();
        return this;
      }

      private int runeType_ ;
      /**
       * optional uint32 rune_type = 39;
       */
      public boolean hasRuneType() {
        return ((bitField1_ & 0x00000040) == 0x00000040);
      }
      /**
       * optional uint32 rune_type = 39;
       */
      public int getRuneType() {
        return runeType_;
      }
      /**
       * optional uint32 rune_type = 39;
       */
      public Builder setRuneType(int value) {
        bitField1_ |= 0x00000040;
        runeType_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 rune_type = 39;
       */
      public Builder clearRuneType() {
        bitField1_ = (bitField1_ & ~0x00000040);
        runeType_ = 0;
        onChanged();
        return this;
      }

      private java.util.List assistPlayers_ = java.util.Collections.emptyList();
      private void ensureAssistPlayersIsMutable() {
        if (!((bitField1_ & 0x00000080) == 0x00000080)) {
          assistPlayers_ = new java.util.ArrayList(assistPlayers_);
          bitField1_ |= 0x00000080;
         }
      }
      /**
       * repeated uint32 assist_players = 40;
       */
      public java.util.List
          getAssistPlayersList() {
        return java.util.Collections.unmodifiableList(assistPlayers_);
      }
      /**
       * repeated uint32 assist_players = 40;
       */
      public int getAssistPlayersCount() {
        return assistPlayers_.size();
      }
      /**
       * repeated uint32 assist_players = 40;
       */
      public int getAssistPlayers(int index) {
        return assistPlayers_.get(index);
      }
      /**
       * repeated uint32 assist_players = 40;
       */
      public Builder setAssistPlayers(
          int index, int value) {
        ensureAssistPlayersIsMutable();
        assistPlayers_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * repeated uint32 assist_players = 40;
       */
      public Builder addAssistPlayers(int value) {
        ensureAssistPlayersIsMutable();
        assistPlayers_.add(value);
        onChanged();
        return this;
      }
      /**
       * repeated uint32 assist_players = 40;
       */
      public Builder addAllAssistPlayers(
          java.lang.Iterable values) {
        ensureAssistPlayersIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, assistPlayers_);
        onChanged();
        return this;
      }
      /**
       * repeated uint32 assist_players = 40;
       */
      public Builder clearAssistPlayers() {
        assistPlayers_ = java.util.Collections.emptyList();
        bitField1_ = (bitField1_ & ~0x00000080);
        onChanged();
        return this;
      }

      private boolean isHealSave_ ;
      /**
       * optional bool is_heal_save = 41;
       */
      public boolean hasIsHealSave() {
        return ((bitField1_ & 0x00000100) == 0x00000100);
      }
      /**
       * optional bool is_heal_save = 41;
       */
      public boolean getIsHealSave() {
        return isHealSave_;
      }
      /**
       * optional bool is_heal_save = 41;
       */
      public Builder setIsHealSave(boolean value) {
        bitField1_ |= 0x00000100;
        isHealSave_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool is_heal_save = 41;
       */
      public Builder clearIsHealSave() {
        bitField1_ = (bitField1_ & ~0x00000100);
        isHealSave_ = false;
        onChanged();
        return this;
      }

      private boolean isUltimateAbility_ ;
      /**
       * optional bool is_ultimate_ability = 42;
       */
      public boolean hasIsUltimateAbility() {
        return ((bitField1_ & 0x00000200) == 0x00000200);
      }
      /**
       * optional bool is_ultimate_ability = 42;
       */
      public boolean getIsUltimateAbility() {
        return isUltimateAbility_;
      }
      /**
       * optional bool is_ultimate_ability = 42;
       */
      public Builder setIsUltimateAbility(boolean value) {
        bitField1_ |= 0x00000200;
        isUltimateAbility_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool is_ultimate_ability = 42;
       */
      public Builder clearIsUltimateAbility() {
        bitField1_ = (bitField1_ & ~0x00000200);
        isUltimateAbility_ = false;
        onChanged();
        return this;
      }

      private int attackerHeroLevel_ ;
      /**
       * optional uint32 attacker_hero_level = 43;
       */
      public boolean hasAttackerHeroLevel() {
        return ((bitField1_ & 0x00000400) == 0x00000400);
      }
      /**
       * optional uint32 attacker_hero_level = 43;
       */
      public int getAttackerHeroLevel() {
        return attackerHeroLevel_;
      }
      /**
       * optional uint32 attacker_hero_level = 43;
       */
      public Builder setAttackerHeroLevel(int value) {
        bitField1_ |= 0x00000400;
        attackerHeroLevel_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 attacker_hero_level = 43;
       */
      public Builder clearAttackerHeroLevel() {
        bitField1_ = (bitField1_ & ~0x00000400);
        attackerHeroLevel_ = 0;
        onChanged();
        return this;
      }

      private int targetHeroLevel_ ;
      /**
       * optional uint32 target_hero_level = 44;
       */
      public boolean hasTargetHeroLevel() {
        return ((bitField1_ & 0x00000800) == 0x00000800);
      }
      /**
       * optional uint32 target_hero_level = 44;
       */
      public int getTargetHeroLevel() {
        return targetHeroLevel_;
      }
      /**
       * optional uint32 target_hero_level = 44;
       */
      public Builder setTargetHeroLevel(int value) {
        bitField1_ |= 0x00000800;
        targetHeroLevel_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 target_hero_level = 44;
       */
      public Builder clearTargetHeroLevel() {
        bitField1_ = (bitField1_ & ~0x00000800);
        targetHeroLevel_ = 0;
        onChanged();
        return this;
      }

      private int xpm_ ;
      /**
       * optional uint32 xpm = 45;
       */
      public boolean hasXpm() {
        return ((bitField1_ & 0x00001000) == 0x00001000);
      }
      /**
       * optional uint32 xpm = 45;
       */
      public int getXpm() {
        return xpm_;
      }
      /**
       * optional uint32 xpm = 45;
       */
      public Builder setXpm(int value) {
        bitField1_ |= 0x00001000;
        xpm_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 xpm = 45;
       */
      public Builder clearXpm() {
        bitField1_ = (bitField1_ & ~0x00001000);
        xpm_ = 0;
        onChanged();
        return this;
      }

      private int gpm_ ;
      /**
       * optional uint32 gpm = 46;
       */
      public boolean hasGpm() {
        return ((bitField1_ & 0x00002000) == 0x00002000);
      }
      /**
       * optional uint32 gpm = 46;
       */
      public int getGpm() {
        return gpm_;
      }
      /**
       * optional uint32 gpm = 46;
       */
      public Builder setGpm(int value) {
        bitField1_ |= 0x00002000;
        gpm_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 gpm = 46;
       */
      public Builder clearGpm() {
        bitField1_ = (bitField1_ & ~0x00002000);
        gpm_ = 0;
        onChanged();
        return this;
      }

      private int eventLocation_ ;
      /**
       * optional uint32 event_location = 47;
       */
      public boolean hasEventLocation() {
        return ((bitField1_ & 0x00004000) == 0x00004000);
      }
      /**
       * optional uint32 event_location = 47;
       */
      public int getEventLocation() {
        return eventLocation_;
      }
      /**
       * optional uint32 event_location = 47;
       */
      public Builder setEventLocation(int value) {
        bitField1_ |= 0x00004000;
        eventLocation_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 event_location = 47;
       */
      public Builder clearEventLocation() {
        bitField1_ = (bitField1_ & ~0x00004000);
        eventLocation_ = 0;
        onChanged();
        return this;
      }

      private boolean targetIsSelf_ ;
      /**
       * optional bool target_is_self = 48;
       */
      public boolean hasTargetIsSelf() {
        return ((bitField1_ & 0x00008000) == 0x00008000);
      }
      /**
       * optional bool target_is_self = 48;
       */
      public boolean getTargetIsSelf() {
        return targetIsSelf_;
      }
      /**
       * optional bool target_is_self = 48;
       */
      public Builder setTargetIsSelf(boolean value) {
        bitField1_ |= 0x00008000;
        targetIsSelf_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool target_is_self = 48;
       */
      public Builder clearTargetIsSelf() {
        bitField1_ = (bitField1_ & ~0x00008000);
        targetIsSelf_ = false;
        onChanged();
        return this;
      }

      private int damageType_ ;
      /**
       * optional uint32 damage_type = 49;
       */
      public boolean hasDamageType() {
        return ((bitField1_ & 0x00010000) == 0x00010000);
      }
      /**
       * optional uint32 damage_type = 49;
       */
      public int getDamageType() {
        return damageType_;
      }
      /**
       * optional uint32 damage_type = 49;
       */
      public Builder setDamageType(int value) {
        bitField1_ |= 0x00010000;
        damageType_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 damage_type = 49;
       */
      public Builder clearDamageType() {
        bitField1_ = (bitField1_ & ~0x00010000);
        damageType_ = 0;
        onChanged();
        return this;
      }

      private boolean invisibilityModifier_ ;
      /**
       * optional bool invisibility_modifier = 50;
       */
      public boolean hasInvisibilityModifier() {
        return ((bitField1_ & 0x00020000) == 0x00020000);
      }
      /**
       * optional bool invisibility_modifier = 50;
       */
      public boolean getInvisibilityModifier() {
        return invisibilityModifier_;
      }
      /**
       * optional bool invisibility_modifier = 50;
       */
      public Builder setInvisibilityModifier(boolean value) {
        bitField1_ |= 0x00020000;
        invisibilityModifier_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool invisibility_modifier = 50;
       */
      public Builder clearInvisibilityModifier() {
        bitField1_ = (bitField1_ & ~0x00020000);
        invisibilityModifier_ = false;
        onChanged();
        return this;
      }

      private int damageCategory_ ;
      /**
       * optional uint32 damage_category = 51;
       */
      public boolean hasDamageCategory() {
        return ((bitField1_ & 0x00040000) == 0x00040000);
      }
      /**
       * optional uint32 damage_category = 51;
       */
      public int getDamageCategory() {
        return damageCategory_;
      }
      /**
       * optional uint32 damage_category = 51;
       */
      public Builder setDamageCategory(int value) {
        bitField1_ |= 0x00040000;
        damageCategory_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 damage_category = 51;
       */
      public Builder clearDamageCategory() {
        bitField1_ = (bitField1_ & ~0x00040000);
        damageCategory_ = 0;
        onChanged();
        return this;
      }

      private int networth_ ;
      /**
       * optional uint32 networth = 52;
       */
      public boolean hasNetworth() {
        return ((bitField1_ & 0x00080000) == 0x00080000);
      }
      /**
       * optional uint32 networth = 52;
       */
      public int getNetworth() {
        return networth_;
      }
      /**
       * optional uint32 networth = 52;
       */
      public Builder setNetworth(int value) {
        bitField1_ |= 0x00080000;
        networth_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 networth = 52;
       */
      public Builder clearNetworth() {
        bitField1_ = (bitField1_ & ~0x00080000);
        networth_ = 0;
        onChanged();
        return this;
      }

      private int buildingType_ ;
      /**
       * optional uint32 building_type = 53;
       */
      public boolean hasBuildingType() {
        return ((bitField1_ & 0x00100000) == 0x00100000);
      }
      /**
       * optional uint32 building_type = 53;
       */
      public int getBuildingType() {
        return buildingType_;
      }
      /**
       * optional uint32 building_type = 53;
       */
      public Builder setBuildingType(int value) {
        bitField1_ |= 0x00100000;
        buildingType_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 building_type = 53;
       */
      public Builder clearBuildingType() {
        bitField1_ = (bitField1_ & ~0x00100000);
        buildingType_ = 0;
        onChanged();
        return this;
      }

      private float modifierElapsedDuration_ ;
      /**
       * optional float modifier_elapsed_duration = 54;
       */
      public boolean hasModifierElapsedDuration() {
        return ((bitField1_ & 0x00200000) == 0x00200000);
      }
      /**
       * optional float modifier_elapsed_duration = 54;
       */
      public float getModifierElapsedDuration() {
        return modifierElapsedDuration_;
      }
      /**
       * optional float modifier_elapsed_duration = 54;
       */
      public Builder setModifierElapsedDuration(float value) {
        bitField1_ |= 0x00200000;
        modifierElapsedDuration_ = value;
        onChanged();
        return this;
      }
      /**
       * optional float modifier_elapsed_duration = 54;
       */
      public Builder clearModifierElapsedDuration() {
        bitField1_ = (bitField1_ & ~0x00200000);
        modifierElapsedDuration_ = 0F;
        onChanged();
        return this;
      }

      private boolean silenceModifier_ ;
      /**
       * optional bool silence_modifier = 55;
       */
      public boolean hasSilenceModifier() {
        return ((bitField1_ & 0x00400000) == 0x00400000);
      }
      /**
       * optional bool silence_modifier = 55;
       */
      public boolean getSilenceModifier() {
        return silenceModifier_;
      }
      /**
       * optional bool silence_modifier = 55;
       */
      public Builder setSilenceModifier(boolean value) {
        bitField1_ |= 0x00400000;
        silenceModifier_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool silence_modifier = 55;
       */
      public Builder clearSilenceModifier() {
        bitField1_ = (bitField1_ & ~0x00400000);
        silenceModifier_ = false;
        onChanged();
        return this;
      }

      private boolean healFromLifesteal_ ;
      /**
       * optional bool heal_from_lifesteal = 56;
       */
      public boolean hasHealFromLifesteal() {
        return ((bitField1_ & 0x00800000) == 0x00800000);
      }
      /**
       * optional bool heal_from_lifesteal = 56;
       */
      public boolean getHealFromLifesteal() {
        return healFromLifesteal_;
      }
      /**
       * optional bool heal_from_lifesteal = 56;
       */
      public Builder setHealFromLifesteal(boolean value) {
        bitField1_ |= 0x00800000;
        healFromLifesteal_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool heal_from_lifesteal = 56;
       */
      public Builder clearHealFromLifesteal() {
        bitField1_ = (bitField1_ & ~0x00800000);
        healFromLifesteal_ = false;
        onChanged();
        return this;
      }

      private boolean modifierPurged_ ;
      /**
       * optional bool modifier_purged = 57;
       */
      public boolean hasModifierPurged() {
        return ((bitField1_ & 0x01000000) == 0x01000000);
      }
      /**
       * optional bool modifier_purged = 57;
       */
      public boolean getModifierPurged() {
        return modifierPurged_;
      }
      /**
       * optional bool modifier_purged = 57;
       */
      public Builder setModifierPurged(boolean value) {
        bitField1_ |= 0x01000000;
        modifierPurged_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool modifier_purged = 57;
       */
      public Builder clearModifierPurged() {
        bitField1_ = (bitField1_ & ~0x01000000);
        modifierPurged_ = false;
        onChanged();
        return this;
      }

      private boolean spellEvaded_ ;
      /**
       * optional bool spell_evaded = 58;
       */
      public boolean hasSpellEvaded() {
        return ((bitField1_ & 0x02000000) == 0x02000000);
      }
      /**
       * optional bool spell_evaded = 58;
       */
      public boolean getSpellEvaded() {
        return spellEvaded_;
      }
      /**
       * optional bool spell_evaded = 58;
       */
      public Builder setSpellEvaded(boolean value) {
        bitField1_ |= 0x02000000;
        spellEvaded_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool spell_evaded = 58;
       */
      public Builder clearSpellEvaded() {
        bitField1_ = (bitField1_ & ~0x02000000);
        spellEvaded_ = false;
        onChanged();
        return this;
      }

      private boolean motionControllerModifier_ ;
      /**
       * optional bool motion_controller_modifier = 59;
       */
      public boolean hasMotionControllerModifier() {
        return ((bitField1_ & 0x04000000) == 0x04000000);
      }
      /**
       * optional bool motion_controller_modifier = 59;
       */
      public boolean getMotionControllerModifier() {
        return motionControllerModifier_;
      }
      /**
       * optional bool motion_controller_modifier = 59;
       */
      public Builder setMotionControllerModifier(boolean value) {
        bitField1_ |= 0x04000000;
        motionControllerModifier_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool motion_controller_modifier = 59;
       */
      public Builder clearMotionControllerModifier() {
        bitField1_ = (bitField1_ & ~0x04000000);
        motionControllerModifier_ = false;
        onChanged();
        return this;
      }

      private boolean longRangeKill_ ;
      /**
       * optional bool long_range_kill = 60;
       */
      public boolean hasLongRangeKill() {
        return ((bitField1_ & 0x08000000) == 0x08000000);
      }
      /**
       * optional bool long_range_kill = 60;
       */
      public boolean getLongRangeKill() {
        return longRangeKill_;
      }
      /**
       * optional bool long_range_kill = 60;
       */
      public Builder setLongRangeKill(boolean value) {
        bitField1_ |= 0x08000000;
        longRangeKill_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool long_range_kill = 60;
       */
      public Builder clearLongRangeKill() {
        bitField1_ = (bitField1_ & ~0x08000000);
        longRangeKill_ = false;
        onChanged();
        return this;
      }

      private int modifierPurgeAbility_ ;
      /**
       * optional uint32 modifier_purge_ability = 61;
       */
      public boolean hasModifierPurgeAbility() {
        return ((bitField1_ & 0x10000000) == 0x10000000);
      }
      /**
       * optional uint32 modifier_purge_ability = 61;
       */
      public int getModifierPurgeAbility() {
        return modifierPurgeAbility_;
      }
      /**
       * optional uint32 modifier_purge_ability = 61;
       */
      public Builder setModifierPurgeAbility(int value) {
        bitField1_ |= 0x10000000;
        modifierPurgeAbility_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 modifier_purge_ability = 61;
       */
      public Builder clearModifierPurgeAbility() {
        bitField1_ = (bitField1_ & ~0x10000000);
        modifierPurgeAbility_ = 0;
        onChanged();
        return this;
      }

      private int modifierPurgeNpc_ ;
      /**
       * optional uint32 modifier_purge_npc = 62;
       */
      public boolean hasModifierPurgeNpc() {
        return ((bitField1_ & 0x20000000) == 0x20000000);
      }
      /**
       * optional uint32 modifier_purge_npc = 62;
       */
      public int getModifierPurgeNpc() {
        return modifierPurgeNpc_;
      }
      /**
       * optional uint32 modifier_purge_npc = 62;
       */
      public Builder setModifierPurgeNpc(int value) {
        bitField1_ |= 0x20000000;
        modifierPurgeNpc_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 modifier_purge_npc = 62;
       */
      public Builder clearModifierPurgeNpc() {
        bitField1_ = (bitField1_ & ~0x20000000);
        modifierPurgeNpc_ = 0;
        onChanged();
        return this;
      }

      private boolean rootModifier_ ;
      /**
       * optional bool root_modifier = 63;
       */
      public boolean hasRootModifier() {
        return ((bitField1_ & 0x40000000) == 0x40000000);
      }
      /**
       * optional bool root_modifier = 63;
       */
      public boolean getRootModifier() {
        return rootModifier_;
      }
      /**
       * optional bool root_modifier = 63;
       */
      public Builder setRootModifier(boolean value) {
        bitField1_ |= 0x40000000;
        rootModifier_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool root_modifier = 63;
       */
      public Builder clearRootModifier() {
        bitField1_ = (bitField1_ & ~0x40000000);
        rootModifier_ = false;
        onChanged();
        return this;
      }

      private int totalUnitDeathCount_ ;
      /**
       * optional uint32 total_unit_death_count = 64;
       */
      public boolean hasTotalUnitDeathCount() {
        return ((bitField1_ & 0x80000000) == 0x80000000);
      }
      /**
       * optional uint32 total_unit_death_count = 64;
       */
      public int getTotalUnitDeathCount() {
        return totalUnitDeathCount_;
      }
      /**
       * optional uint32 total_unit_death_count = 64;
       */
      public Builder setTotalUnitDeathCount(int value) {
        bitField1_ |= 0x80000000;
        totalUnitDeathCount_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 total_unit_death_count = 64;
       */
      public Builder clearTotalUnitDeathCount() {
        bitField1_ = (bitField1_ & ~0x80000000);
        totalUnitDeathCount_ = 0;
        onChanged();
        return this;
      }

      private boolean auraModifier_ ;
      /**
       * optional bool aura_modifier = 65;
       */
      public boolean hasAuraModifier() {
        return ((bitField2_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional bool aura_modifier = 65;
       */
      public boolean getAuraModifier() {
        return auraModifier_;
      }
      /**
       * optional bool aura_modifier = 65;
       */
      public Builder setAuraModifier(boolean value) {
        bitField2_ |= 0x00000001;
        auraModifier_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool aura_modifier = 65;
       */
      public Builder clearAuraModifier() {
        bitField2_ = (bitField2_ & ~0x00000001);
        auraModifier_ = false;
        onChanged();
        return this;
      }

      private boolean armorDebuffModifier_ ;
      /**
       * optional bool armor_debuff_modifier = 66;
       */
      public boolean hasArmorDebuffModifier() {
        return ((bitField2_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional bool armor_debuff_modifier = 66;
       */
      public boolean getArmorDebuffModifier() {
        return armorDebuffModifier_;
      }
      /**
       * optional bool armor_debuff_modifier = 66;
       */
      public Builder setArmorDebuffModifier(boolean value) {
        bitField2_ |= 0x00000002;
        armorDebuffModifier_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool armor_debuff_modifier = 66;
       */
      public Builder clearArmorDebuffModifier() {
        bitField2_ = (bitField2_ & ~0x00000002);
        armorDebuffModifier_ = false;
        onChanged();
        return this;
      }

      private boolean noPhysicalDamageModifier_ ;
      /**
       * optional bool no_physical_damage_modifier = 67;
       */
      public boolean hasNoPhysicalDamageModifier() {
        return ((bitField2_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional bool no_physical_damage_modifier = 67;
       */
      public boolean getNoPhysicalDamageModifier() {
        return noPhysicalDamageModifier_;
      }
      /**
       * optional bool no_physical_damage_modifier = 67;
       */
      public Builder setNoPhysicalDamageModifier(boolean value) {
        bitField2_ |= 0x00000004;
        noPhysicalDamageModifier_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool no_physical_damage_modifier = 67;
       */
      public Builder clearNoPhysicalDamageModifier() {
        bitField2_ = (bitField2_ & ~0x00000004);
        noPhysicalDamageModifier_ = false;
        onChanged();
        return this;
      }

      private int modifierAbility_ ;
      /**
       * optional uint32 modifier_ability = 68;
       */
      public boolean hasModifierAbility() {
        return ((bitField2_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional uint32 modifier_ability = 68;
       */
      public int getModifierAbility() {
        return modifierAbility_;
      }
      /**
       * optional uint32 modifier_ability = 68;
       */
      public Builder setModifierAbility(int value) {
        bitField2_ |= 0x00000008;
        modifierAbility_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 modifier_ability = 68;
       */
      public Builder clearModifierAbility() {
        bitField2_ = (bitField2_ & ~0x00000008);
        modifierAbility_ = 0;
        onChanged();
        return this;
      }

      private boolean modifierHidden_ ;
      /**
       * optional bool modifier_hidden = 69;
       */
      public boolean hasModifierHidden() {
        return ((bitField2_ & 0x00000010) == 0x00000010);
      }
      /**
       * optional bool modifier_hidden = 69;
       */
      public boolean getModifierHidden() {
        return modifierHidden_;
      }
      /**
       * optional bool modifier_hidden = 69;
       */
      public Builder setModifierHidden(boolean value) {
        bitField2_ |= 0x00000010;
        modifierHidden_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool modifier_hidden = 69;
       */
      public Builder clearModifierHidden() {
        bitField2_ = (bitField2_ & ~0x00000010);
        modifierHidden_ = false;
        onChanged();
        return this;
      }

      private boolean inflictorIsStolenAbility_ ;
      /**
       * optional bool inflictor_is_stolen_ability = 70;
       */
      public boolean hasInflictorIsStolenAbility() {
        return ((bitField2_ & 0x00000020) == 0x00000020);
      }
      /**
       * optional bool inflictor_is_stolen_ability = 70;
       */
      public boolean getInflictorIsStolenAbility() {
        return inflictorIsStolenAbility_;
      }
      /**
       * optional bool inflictor_is_stolen_ability = 70;
       */
      public Builder setInflictorIsStolenAbility(boolean value) {
        bitField2_ |= 0x00000020;
        inflictorIsStolenAbility_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool inflictor_is_stolen_ability = 70;
       */
      public Builder clearInflictorIsStolenAbility() {
        bitField2_ = (bitField2_ & ~0x00000020);
        inflictorIsStolenAbility_ = false;
        onChanged();
        return this;
      }

      private int killEaterEvent_ ;
      /**
       * optional uint32 kill_eater_event = 71;
       */
      public boolean hasKillEaterEvent() {
        return ((bitField2_ & 0x00000040) == 0x00000040);
      }
      /**
       * optional uint32 kill_eater_event = 71;
       */
      public int getKillEaterEvent() {
        return killEaterEvent_;
      }
      /**
       * optional uint32 kill_eater_event = 71;
       */
      public Builder setKillEaterEvent(int value) {
        bitField2_ |= 0x00000040;
        killEaterEvent_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 kill_eater_event = 71;
       */
      public Builder clearKillEaterEvent() {
        bitField2_ = (bitField2_ & ~0x00000040);
        killEaterEvent_ = 0;
        onChanged();
        return this;
      }

      private int unitStatusLabel_ ;
      /**
       * optional uint32 unit_status_label = 72;
       */
      public boolean hasUnitStatusLabel() {
        return ((bitField2_ & 0x00000080) == 0x00000080);
      }
      /**
       * optional uint32 unit_status_label = 72;
       */
      public int getUnitStatusLabel() {
        return unitStatusLabel_;
      }
      /**
       * optional uint32 unit_status_label = 72;
       */
      public Builder setUnitStatusLabel(int value) {
        bitField2_ |= 0x00000080;
        unitStatusLabel_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 unit_status_label = 72;
       */
      public Builder clearUnitStatusLabel() {
        bitField2_ = (bitField2_ & ~0x00000080);
        unitStatusLabel_ = 0;
        onChanged();
        return this;
      }

      private boolean spellGeneratedAttack_ ;
      /**
       * optional bool spell_generated_attack = 73;
       */
      public boolean hasSpellGeneratedAttack() {
        return ((bitField2_ & 0x00000100) == 0x00000100);
      }
      /**
       * optional bool spell_generated_attack = 73;
       */
      public boolean getSpellGeneratedAttack() {
        return spellGeneratedAttack_;
      }
      /**
       * optional bool spell_generated_attack = 73;
       */
      public Builder setSpellGeneratedAttack(boolean value) {
        bitField2_ |= 0x00000100;
        spellGeneratedAttack_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool spell_generated_attack = 73;
       */
      public Builder clearSpellGeneratedAttack() {
        bitField2_ = (bitField2_ & ~0x00000100);
        spellGeneratedAttack_ = false;
        onChanged();
        return this;
      }

      private boolean atNightTime_ ;
      /**
       * optional bool at_night_time = 74;
       */
      public boolean hasAtNightTime() {
        return ((bitField2_ & 0x00000200) == 0x00000200);
      }
      /**
       * optional bool at_night_time = 74;
       */
      public boolean getAtNightTime() {
        return atNightTime_;
      }
      /**
       * optional bool at_night_time = 74;
       */
      public Builder setAtNightTime(boolean value) {
        bitField2_ |= 0x00000200;
        atNightTime_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool at_night_time = 74;
       */
      public Builder clearAtNightTime() {
        bitField2_ = (bitField2_ & ~0x00000200);
        atNightTime_ = false;
        onChanged();
        return this;
      }

      private boolean attackerHasScepter_ ;
      /**
       * optional bool attacker_has_scepter = 75;
       */
      public boolean hasAttackerHasScepter() {
        return ((bitField2_ & 0x00000400) == 0x00000400);
      }
      /**
       * optional bool attacker_has_scepter = 75;
       */
      public boolean getAttackerHasScepter() {
        return attackerHasScepter_;
      }
      /**
       * optional bool attacker_has_scepter = 75;
       */
      public Builder setAttackerHasScepter(boolean value) {
        bitField2_ |= 0x00000400;
        attackerHasScepter_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool attacker_has_scepter = 75;
       */
      public Builder clearAttackerHasScepter() {
        bitField2_ = (bitField2_ & ~0x00000400);
        attackerHasScepter_ = false;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CMsgDOTACombatLogEntry)
    }

    static {
      defaultInstance = new CMsgDOTACombatLogEntry(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CMsgDOTACombatLogEntry)
  }

  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_ChatEvent_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_ChatEvent_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_BotChat_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_BotChat_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_CombatLogBulkData_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_CombatLogBulkData_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_MiniKillCamInfo_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_MiniKillCamInfo_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_MiniKillCamInfo_Attacker_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_MiniKillCamInfo_Attacker_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_MiniKillCamInfo_Attacker_Ability_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_MiniKillCamInfo_Attacker_Ability_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_GlobalLightColor_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_GlobalLightColor_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_GlobalLightDirection_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_GlobalLightDirection_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_LocationPing_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_LocationPing_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_PingConfirmation_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_PingConfirmation_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_EnemyItemAlert_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_EnemyItemAlert_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_ModifierAlert_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_ModifierAlert_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_HPManaAlert_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_HPManaAlert_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_GlyphAlert_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_GlyphAlert_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_RadarAlert_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_RadarAlert_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_WillPurchaseAlert_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_WillPurchaseAlert_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_EmptyTeleportAlert_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_EmptyTeleportAlert_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_MarsArenaOfBloodAttack_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_MarsArenaOfBloodAttack_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAEntityMsg_InvokerSpellCast_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAEntityMsg_InvokerSpellCast_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_QuickBuyAlert_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_QuickBuyAlert_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_CourierKilledAlert_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_CourierKilledAlert_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_CourierKilledAlert_LostItem_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_CourierKilledAlert_LostItem_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_MinimapEvent_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_MinimapEvent_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_MapLine_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_MapLine_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_CreateLinearProjectile_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_CreateLinearProjectile_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_DestroyLinearProjectile_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_DestroyLinearProjectile_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_DodgeTrackingProjectiles_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_DodgeTrackingProjectiles_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_SpectatorPlayerClick_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_SpectatorPlayerClick_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_SpectatorPlayerUnitOrders_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_SpectatorPlayerUnitOrders_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_NevermoreRequiem_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_NevermoreRequiem_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_HudError_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_HudError_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_SharedCooldown_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_SharedCooldown_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_HalloweenDrops_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_HalloweenDrops_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_PredictionResult_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_PredictionResult_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_PredictionResult_Prediction_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_PredictionResult_Prediction_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAResponseQuerySerialized_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAResponseQuerySerialized_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAResponseQuerySerialized_Fact_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAResponseQuerySerialized_Fact_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTASpeechMatchOnClient_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTASpeechMatchOnClient_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_UnitEvent_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_UnitEvent_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_UnitEvent_Interval_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_UnitEvent_Interval_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_UnitEvent_Speech_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_UnitEvent_Speech_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_UnitEvent_SpeechMute_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_UnitEvent_SpeechMute_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_UnitEvent_AddGesture_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_UnitEvent_AddGesture_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_UnitEvent_RemoveGesture_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_UnitEvent_RemoveGesture_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_UnitEvent_BloodImpact_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_UnitEvent_BloodImpact_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_UnitEvent_FadeGesture_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_UnitEvent_FadeGesture_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_ItemPurchased_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_ItemPurchased_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_ItemSold_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_ItemSold_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_ParticleManager_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_ParticleManager_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_ParticleManager_ReleaseParticleIndex_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_ParticleManager_ReleaseParticleIndex_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_ParticleManager_CreateParticle_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_ParticleManager_CreateParticle_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_ParticleManager_DestroyParticle_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_ParticleManager_DestroyParticle_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_ParticleManager_DestroyParticleInvolving_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_ParticleManager_DestroyParticleInvolving_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_ParticleManager_UpdateParticle_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_ParticleManager_UpdateParticle_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleFwd_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleFwd_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleOrient_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleOrient_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleFallback_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleFallback_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleOffset_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleOffset_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleEnt_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleEnt_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleSetFrozen_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleSetFrozen_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleShouldDraw_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleShouldDraw_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_ParticleManager_ChangeControlPointAttachment_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_ParticleManager_ChangeControlPointAttachment_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_ParticleManager_UpdateEntityPosition_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_ParticleManager_UpdateEntityPosition_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_ParticleManager_SetParticleFoWProperties_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_ParticleManager_SetParticleFoWProperties_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_ParticleManager_SetParticleShouldCheckFoW_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_ParticleManager_SetParticleShouldCheckFoW_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_ParticleManager_SetControlPointModel_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_ParticleManager_SetControlPointModel_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_ParticleManager_SetControlPointSnapshot_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_ParticleManager_SetControlPointSnapshot_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_ParticleManager_SetParticleText_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_ParticleManager_SetParticleText_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_ParticleManager_SetTextureAttribute_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_ParticleManager_SetTextureAttribute_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_ParticleManager_SetSceneObjectGenericFlag_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_ParticleManager_SetSceneObjectGenericFlag_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_ParticleManager_SetSceneObjectTintAndDesat_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_ParticleManager_SetSceneObjectTintAndDesat_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_OverheadEvent_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_OverheadEvent_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_WorldLine_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_WorldLine_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_ChatWheel_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_ChatWheel_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_GamerulesStateChanged_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_GamerulesStateChanged_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_SendStatPopup_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_SendStatPopup_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_DismissAllStatPopups_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_DismissAllStatPopups_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_SendRoshanSpectatorPhase_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_SendRoshanSpectatorPhase_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_SendRoshanPopup_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_SendRoshanPopup_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_TE_Projectile_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_TE_Projectile_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_TE_ProjectileLoc_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_TE_ProjectileLoc_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_TE_DestroyProjectile_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_TE_DestroyProjectile_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_TE_DotaBloodImpact_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_TE_DotaBloodImpact_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_AbilityPing_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_AbilityPing_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_TE_UnitAnimation_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_TE_UnitAnimation_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_TE_UnitAnimationEnd_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_TE_UnitAnimationEnd_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_AbilitySteal_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_AbilitySteal_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_StatsHeroLookup_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_StatsHeroLookup_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_StatsHeroPositionInfo_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_StatsHeroPositionInfo_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_StatsHeroPositionInfo_PositionPair_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_StatsHeroPositionInfo_PositionPair_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_StatsPlayerKillShare_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_StatsPlayerKillShare_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_StatsKillDetails_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_StatsKillDetails_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CMsgHeroAbilityStat_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CMsgHeroAbilityStat_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CMsgCombatAnalyzerPlayerStat_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CMsgCombatAnalyzerPlayerStat_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CMsgCombatAnalyzerStats_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CMsgCombatAnalyzerStats_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_ProjectionAbility_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_ProjectionAbility_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_ProjectionEvent_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_ProjectionEvent_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_XPAlert_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_XPAlert_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_TalentTreeAlert_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_TalentTreeAlert_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_UpdateQuestProgress_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_UpdateQuestProgress_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_SelectPenaltyGold_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_SelectPenaltyGold_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_RollDiceResult_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_RollDiceResult_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_FlipCoinResult_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_FlipCoinResult_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMessage_TeamCaptainChanged_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMessage_TeamCaptainChanged_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_HeroRelicProgress_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_HeroRelicProgress_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_DamageReport_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_DamageReport_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_SalutePlayer_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_SalutePlayer_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_TipAlert_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_TipAlert_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_ESArcanaCombo_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_ESArcanaCombo_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_ESArcanaComboSummary_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_ESArcanaComboSummary_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_OMArcanaCombo_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_OMArcanaCombo_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_HighFiveCompleted_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_HighFiveCompleted_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_HighFiveLeftHanging_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_HighFiveLeftHanging_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_ShovelUnearth_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_ShovelUnearth_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_AllStarEvent_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_AllStarEvent_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_AllStarEvent_PlayerScore_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_AllStarEvent_PlayerScore_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_QueuedOrderRemoved_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_QueuedOrderRemoved_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_DebugChallenge_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_DebugChallenge_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_FoundNeutralItem_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_FoundNeutralItem_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_OutpostCaptured_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_OutpostCaptured_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_OutpostGrantedXP_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_OutpostGrantedXP_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_MoveCameraToUnit_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_MoveCameraToUnit_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_PauseMinigameData_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_PauseMinigameData_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_PauseMinigameData_DataBit_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_PauseMinigameData_DataBit_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_VersusScene_PlayerBehavior_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_VersusScene_PlayerBehavior_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_QoP_ArcanaSummary_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_QoP_ArcanaSummary_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_HotPotato_Created_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_HotPotato_Created_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_HotPotato_Exploded_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_HotPotato_Exploded_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_WK_Arcana_Progress_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_WK_Arcana_Progress_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_GuildChallenge_Progress_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_GuildChallenge_Progress_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_GuildChallenge_Progress_PlayerProgress_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_GuildChallenge_Progress_PlayerProgress_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_WRArcanaProgress_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_WRArcanaProgress_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_WRArcanaSummary_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_WRArcanaSummary_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_EmptyItemSlotAlert_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_EmptyItemSlotAlert_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_AghsStatusAlert_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_AghsStatusAlert_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_MutedPlayers_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_MutedPlayers_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_ContextualTip_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_ContextualTip_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_ChatMessage_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_ChatMessage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CMsgDOTACombatLogEntry_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CMsgDOTACombatLogEntry_fieldAccessorTable;

  public static com.google.protobuf.Descriptors.FileDescriptor
      getDescriptor() {
    return descriptor;
  }
  private static com.google.protobuf.Descriptors.FileDescriptor
      descriptor;
  static {
    java.lang.String[] descriptorData = {
      "\n\027dota_usermessages.proto\032\026networkbasety" +
      "pes.proto\032\031dota_commonmessages.proto\"\217\002\n" +
      "\026CDOTAUserMsg_ChatEvent\0226\n\004type\030\001 \001(\0162\022." +
      "DOTA_CHAT_MESSAGE:\024CHAT_MESSAGE_INVALID\022" +
      "\r\n\005value\030\002 \001(\r\022\026\n\nplayerid_1\030\003 \001(\021:\002-1\022\026" +
      "\n\nplayerid_2\030\004 \001(\021:\002-1\022\026\n\nplayerid_3\030\005 \001" +
      "(\021:\002-1\022\026\n\nplayerid_4\030\006 \001(\021:\002-1\022\026\n\nplayer" +
      "id_5\030\007 \001(\021:\002-1\022\026\n\nplayerid_6\030\010 \001(\021:\002-1\022\016" +
      "\n\006value2\030\t \001(\r\022\016\n\006value3\030\n \001(\r\"m\n\024CDOTAU" +
      "serMsg_BotChat\022\021\n\tplayer_id\030\001 \001(\r\022\016\n\006for",
      "mat\030\002 \001(\t\022\017\n\007message\030\003 \001(\t\022\016\n\006target\030\004 \001" +
      "(\t\022\021\n\tteam_only\030\005 \001(\010\"\211\001\n\036CDOTAUserMsg_C" +
      "ombatLogBulkData\022/\n\016combat_entries\030\001 \003(\013" +
      "2\027.CMsgDOTACombatLogEntry\022\021\n\ttimestamp\030\002" +
      " \001(\002\022\020\n\010duration\030\003 \001(\002\022\021\n\tplayer_id\030\004 \001(" +
      "\r\"\227\002\n\034CDOTAUserMsg_MiniKillCamInfo\0229\n\tat" +
      "tackers\030\001 \003(\0132&.CDOTAUserMsg_MiniKillCam" +
      "Info.Attacker\032\273\001\n\010Attacker\022\020\n\010attacker\030\001" +
      " \001(\r\022\024\n\014total_damage\030\002 \001(\005\022A\n\tabilities\030" +
      "\003 \003(\0132..CDOTAUserMsg_MiniKillCamInfo.Att",
      "acker.Ability\022\025\n\rattacker_name\030\004 \001(\t\032-\n\007" +
      "Ability\022\022\n\nability_id\030\001 \001(\r\022\016\n\006damage\030\002 " +
      "\001(\005\"@\n\035CDOTAUserMsg_GlobalLightColor\022\r\n\005" +
      "color\030\001 \001(\r\022\020\n\010duration\030\002 \001(\002\"U\n!CDOTAUs" +
      "erMsg_GlobalLightDirection\022\036\n\tdirection\030" +
      "\001 \001(\0132\013.CMsgVector\022\020\n\010duration\030\002 \001(\002\"]\n\031" +
      "CDOTAUserMsg_LocationPing\022\021\n\tplayer_id\030\001" +
      " \001(\r\022-\n\rlocation_ping\030\002 \001(\0132\026.CDOTAMsg_L" +
      "ocationPing\"\215\001\n\035CDOTAUserMsg_PingConfirm" +
      "ation\022$\n\034player_id_of_original_pinger\030\001 ",
      "\001(\r\022\024\n\014entity_index\030\002 \001(\r\022\021\n\ticon_type\030\003" +
      " \001(\r\022\035\n\010location\030\004 \001(\0132\013.CMsgVector\"\341\001\n\033" +
      "CDOTAUserMsg_EnemyItemAlert\022\021\n\tplayer_id" +
      "\030\001 \001(\r\022\030\n\020target_player_id\030\002 \001(\r\022\027\n\017item" +
      "_ability_id\030\003 \001(\005\022\025\n\trune_type\030\004 \001(\005:\002-1" +
      "\022\021\n\tentity_id\030\005 \001(\005\022\026\n\nitem_level\030\006 \001(\005:" +
      "\002-1\022\033\n\017primary_charges\030\007 \001(\005:\002-1\022\035\n\021seco" +
      "ndary_charges\030\010 \001(\005:\002-1\"\237\001\n\032CDOTAUserMsg" +
      "_ModifierAlert\022\021\n\tplayer_id\030\001 \001(\r\022\022\n\ncla" +
      "ss_name\030\002 \001(\t\022\023\n\013stack_count\030\003 \001(\r\022\021\n\tis",
      "_debuff\030\004 \001(\010\022\027\n\017target_entindex\030\005 \001(\r\022\031" +
      "\n\021seconds_remaining\030\006 \001(\002\"_\n\030CDOTAUserMs" +
      "g_HPManaAlert\022\021\n\tplayer_id\030\001 \001(\r\022\027\n\017targ" +
      "et_entindex\030\002 \001(\r\022\027\n\017show_raw_values\030\003 \001" +
      "(\010\">\n\027CDOTAUserMsg_GlyphAlert\022\021\n\tplayer_" +
      "id\030\001 \001(\r\022\020\n\010negative\030\002 \001(\010\">\n\027CDOTAUserM" +
      "sg_RadarAlert\022\021\n\tplayer_id\030\001 \001(\r\022\020\n\010nega" +
      "tive\030\002 \001(\010\"\202\001\n\036CDOTAUserMsg_WillPurchase" +
      "Alert\022\027\n\017item_ability_id\030\001 \001(\005\022\021\n\tplayer" +
      "_id\030\002 \001(\005\022\026\n\016gold_remaining\030\003 \001(\r\022\034\n\024sug",
      "gestion_player_id\030\004 \001(\005\"o\n\037CDOTAUserMsg_" +
      "EmptyTeleportAlert\022\030\n\020source_player_id\030\001" +
      " \001(\005\022\030\n\020target_player_id\030\002 \001(\005\022\030\n\020cooldo" +
      "wn_seconds\030\003 \001(\005\"l\n#CDOTAUserMsg_MarsAre" +
      "naOfBloodAttack\022\026\n\016source_ehandle\030\001 \001(\005\022" +
      "\026\n\016target_ehandle\030\002 \001(\005\022\025\n\rwarrior_index" +
      "\030\003 \001(\005\"Y\n\037CDOTAEntityMsg_InvokerSpellCas" +
      "t\022\037\n\nentity_msg\030\001 \001(\0132\013.CEntityMsg\022\025\n\rca" +
      "st_activity\030\002 \001(\005\"\220\001\n\032CDOTAUserMsg_Quick" +
      "BuyAlert\022\021\n\tplayer_id\030\001 \001(\005\022\027\n\017item_abil",
      "ity_id\030\002 \001(\005\022\021\n\tgold_cost\030\003 \001(\005\022\035\n\025item_" +
      "cooldown_seconds\030\004 \001(\005\022\024\n\014show_buyback\030\005" +
      " \001(\010\"\227\002\n\037CDOTAUserMsg_CourierKilledAlert" +
      "\022\014\n\004team\030\001 \001(\r\022\022\n\ngold_value\030\002 \001(\r\022\025\n\ren" +
      "tity_handle\030\003 \001(\005\022\021\n\ttimestamp\030\004 \001(\005\022=\n\n" +
      "lost_items\030\005 \003(\0132).CDOTAUserMsg_CourierK" +
      "illedAlert.LostItem\022\030\n\020killer_player_id\030" +
      "\006 \001(\005\022\030\n\020owning_player_id\030\007 \001(\005\0325\n\010LostI" +
      "tem\022\027\n\017item_ability_id\030\001 \001(\005\022\020\n\010quantity" +
      "\030\002 \001(\r\"\214\001\n\031CDOTAUserMsg_MinimapEvent\022\022\n\n",
      "event_type\030\001 \001(\005\022\025\n\rentity_handle\030\002 \001(\005\022" +
      "\t\n\001x\030\003 \001(\005\022\t\n\001y\030\004 \001(\005\022\020\n\010duration\030\005 \001(\005\022" +
      "\034\n\024target_entity_handle\030\006 \001(\005\"M\n\024CDOTAUs" +
      "erMsg_MapLine\022\021\n\tplayer_id\030\001 \001(\005\022\"\n\007mapl" +
      "ine\030\002 \001(\0132\021.CDOTAMsg_MapLine\"\276\002\n#CDOTAUs" +
      "erMsg_CreateLinearProjectile\022\033\n\006origin\030\001" +
      " \001(\0132\013.CMsgVector\022\037\n\010velocity\030\002 \001(\0132\r.CM" +
      "sgVector2D\022\017\n\007latency\030\003 \001(\005\022\020\n\010entindex\030" +
      "\004 \001(\005\022\026\n\016particle_index\030\005 \001(\004\022\016\n\006handle\030" +
      "\006 \001(\005\022#\n\014acceleration\030\007 \001(\0132\r.CMsgVector",
      "2D\022\021\n\tmax_speed\030\010 \001(\002\022\022\n\nfow_radius\030\t \001(" +
      "\002\022\031\n\021sticky_fow_reveal\030\n \001(\010\022\020\n\010distance" +
      "\030\013 \001(\002\022\025\n\rcolorgemcolor\030\014 \001(\007\"6\n$CDOTAUs" +
      "erMsg_DestroyLinearProjectile\022\016\n\006handle\030" +
      "\001 \001(\005\"O\n%CDOTAUserMsg_DodgeTrackingProje" +
      "ctiles\022\020\n\010entindex\030\001 \002(\005\022\024\n\014attacks_only" +
      "\030\002 \001(\010\"_\n!CDOTAUserMsg_SpectatorPlayerCl" +
      "ick\022\020\n\010entindex\030\001 \002(\005\022\022\n\norder_type\030\002 \001(" +
      "\005\022\024\n\014target_index\030\003 \001(\005\"\335\001\n&CDOTAUserMsg" +
      "_SpectatorPlayerUnitOrders\022\020\n\010entindex\030\001",
      " \001(\005\022\022\n\norder_type\030\002 \001(\005\022\r\n\005units\030\003 \003(\005\022" +
      "\024\n\014target_index\030\004 \001(\005\022\022\n\nability_id\030\005 \001(" +
      "\005\022\035\n\010position\030\006 \001(\0132\013.CMsgVector\022\r\n\005queu" +
      "e\030\007 \001(\010\022\027\n\017sequence_number\030\010 \001(\005\022\r\n\005flag" +
      "s\030\t \001(\r\"s\n\035CDOTAUserMsg_NevermoreRequiem" +
      "\022\025\n\rentity_handle\030\001 \001(\005\022\r\n\005lines\030\002 \001(\005\022\033" +
      "\n\006origin\030\003 \001(\0132\013.CMsgVector\022\017\n\007reverse\030\004" +
      " \001(\010\")\n\025CDOTAUserMsg_HudError\022\020\n\010order_i" +
      "d\030\001 \001(\005\"c\n\033CDOTAUserMsg_SharedCooldown\022\020" +
      "\n\010entindex\030\001 \001(\005\022\014\n\004name\030\002 \001(\t\022\020\n\010cooldo",
      "wn\030\003 \001(\002\022\022\n\nname_index\030\004 \001(\005\"X\n\033CDOTAUse" +
      "rMsg_HalloweenDrops\022\021\n\titem_defs\030\001 \003(\r\022\022" +
      "\n\nplayer_ids\030\002 \003(\r\022\022\n\nprize_list\030\003 \001(\r\"\223" +
      "\003\n\035CDOTAUserMsg_PredictionResult\022\022\n\nacco" +
      "unt_id\030\001 \001(\r\022\020\n\010match_id\030\002 \001(\004\022\017\n\007correc" +
      "t\030\003 \001(\010\022>\n\013predictions\030\004 \003(\0132).CDOTAUser" +
      "Msg_PredictionResult.Prediction\032\372\001\n\nPred" +
      "iction\022\020\n\010item_def\030\001 \001(\r\022\023\n\013num_correct\030" +
      "\002 \001(\r\022\021\n\tnum_fails\030\003 \001(\r\022X\n\006result\030\004 \001(\016" +
      "21.CDOTAUserMsg_PredictionResult.Predict",
      "ion.EResult:\025k_eResult_ItemGranted\022\031\n\021gr" +
      "anted_item_defs\030\006 \003(\r\"=\n\007EResult\022\031\n\025k_eR" +
      "esult_ItemGranted\020\001\022\027\n\023k_eResult_Destroy" +
      "ed\020\002\"\376\001\n\034CDOTAResponseQuerySerialized\0221\n" +
      "\005facts\030\001 \003(\0132\".CDOTAResponseQuerySeriali" +
      "zed.Fact\032\252\001\n\004Fact\022\013\n\003key\030\001 \002(\005\022F\n\007valtyp" +
      "e\030\002 \001(\0162,.CDOTAResponseQuerySerialized.F" +
      "act.ValueType:\007NUMERIC\022\023\n\013val_numeric\030\003 " +
      "\001(\002\022\022\n\nval_string\030\004 \001(\t\"$\n\tValueType\022\013\n\007" +
      "NUMERIC\020\001\022\n\n\006STRING\020\002\"\220\001\n\030CDOTASpeechMat",
      "chOnClient\022\017\n\007concept\030\001 \001(\005\022\026\n\016recipient" +
      "_type\030\002 \001(\005\0224\n\rresponsequery\030\003 \001(\0132\035.CDO" +
      "TAResponseQuerySerialized\022\025\n\nrandomseed\030" +
      "\004 \001(\017:\0010\"\213\010\n\026CDOTAUserMsg_UnitEvent\0228\n\010m" +
      "sg_type\030\001 \002(\0162\024.EDotaEntityMessages:\020DOT" +
      "A_UNIT_SPEECH\022\024\n\014entity_index\030\002 \002(\005\022.\n\006s" +
      "peech\030\003 \001(\0132\036.CDOTAUserMsg_UnitEvent.Spe" +
      "ech\0227\n\013speech_mute\030\004 \001(\0132\".CDOTAUserMsg_" +
      "UnitEvent.SpeechMute\0227\n\013add_gesture\030\005 \001(" +
      "\0132\".CDOTAUserMsg_UnitEvent.AddGesture\022=\n",
      "\016remove_gesture\030\006 \001(\0132%.CDOTAUserMsg_Uni" +
      "tEvent.RemoveGesture\0229\n\014blood_impact\030\007 \001" +
      "(\0132#.CDOTAUserMsg_UnitEvent.BloodImpact\022" +
      "9\n\014fade_gesture\030\010 \001(\0132#.CDOTAUserMsg_Uni" +
      "tEvent.FadeGesture\0229\n\026speech_match_on_cl" +
      "ient\030\t \001(\0132\031.CDOTASpeechMatchOnClient\032(\n" +
      "\010Interval\022\r\n\005start\030\001 \001(\002\022\r\n\005range\030\002 \001(\002\032" +
      "\256\001\n\006Speech\022\017\n\007concept\030\001 \001(\005\022\020\n\010response\030" +
      "\002 \001(\t\022\026\n\016recipient_type\030\003 \001(\005\022\r\n\005level\030\004" +
      " \001(\005\022\027\n\010muteable\030\005 \001(\010:\005false\0222\n\010predela",
      "y\030\006 \001(\0132 .CDOTAUserMsg_UnitEvent.Interva" +
      "l\022\r\n\005flags\030\007 \001(\r\032 \n\nSpeechMute\022\022\n\005delay\030" +
      "\001 \001(\002:\0030.5\032\213\001\n\nAddGesture\022\020\n\010activity\030\001 " +
      "\001(\005\022\014\n\004slot\030\002 \001(\005\022\022\n\007fade_in\030\003 \001(\002:\0010\022\025\n" +
      "\010fade_out\030\004 \001(\002:\0030.1\022\030\n\rplayback_rate\030\005 " +
      "\001(\002:\0011\022\030\n\020sequence_variant\030\006 \001(\005\032!\n\rRemo" +
      "veGesture\022\020\n\010activity\030\001 \001(\005\032@\n\013BloodImpa" +
      "ct\022\r\n\005scale\030\001 \001(\005\022\020\n\010x_normal\030\002 \001(\005\022\020\n\010y" +
      "_normal\030\003 \001(\005\032\037\n\013FadeGesture\022\020\n\010activity" +
      "\030\001 \001(\005\"5\n\032CDOTAUserMsg_ItemPurchased\022\027\n\017",
      "item_ability_id\030\001 \001(\005\"0\n\025CDOTAUserMsg_It" +
      "emSold\022\027\n\017item_ability_id\030\001 \001(\005\"\332\035\n\034CDOT" +
      "AUserMsg_ParticleManager\022H\n\004type\030\001 \002(\0162\026" +
      ".DOTA_PARTICLE_MESSAGE:\"DOTA_PARTICLE_MA" +
      "NAGER_EVENT_CREATE\022\r\n\005index\030\002 \002(\r\022R\n\026rel" +
      "ease_particle_index\030\003 \001(\01322.CDOTAUserMsg" +
      "_ParticleManager.ReleaseParticleIndex\022E\n" +
      "\017create_particle\030\004 \001(\0132,.CDOTAUserMsg_Pa" +
      "rticleManager.CreateParticle\022G\n\020destroy_" +
      "particle\030\005 \001(\0132-.CDOTAUserMsg_ParticleMa",
      "nager.DestroyParticle\022Z\n\032destroy_particl" +
      "e_involving\030\006 \001(\01326.CDOTAUserMsg_Particl" +
      "eManager.DestroyParticleInvolving\022E\n\017upd" +
      "ate_particle\030\007 \001(\0132,.CDOTAUserMsg_Partic" +
      "leManager.UpdateParticle\022L\n\023update_parti" +
      "cle_fwd\030\010 \001(\0132/.CDOTAUserMsg_ParticleMan" +
      "ager.UpdateParticleFwd\022R\n\026update_particl" +
      "e_orient\030\t \001(\01322.CDOTAUserMsg_ParticleMa" +
      "nager.UpdateParticleOrient\022V\n\030update_par" +
      "ticle_fallback\030\n \001(\01324.CDOTAUserMsg_Part",
      "icleManager.UpdateParticleFallback\022R\n\026up" +
      "date_particle_offset\030\013 \001(\01322.CDOTAUserMs" +
      "g_ParticleManager.UpdateParticleOffset\022L" +
      "\n\023update_particle_ent\030\014 \001(\0132/.CDOTAUserM" +
      "sg_ParticleManager.UpdateParticleEnt\022[\n\033" +
      "update_particle_should_draw\030\016 \001(\01326.CDOT" +
      "AUserMsg_ParticleManager.UpdateParticleS" +
      "houldDraw\022Y\n\032update_particle_set_frozen\030" +
      "\017 \001(\01325.CDOTAUserMsg_ParticleManager.Upd" +
      "ateParticleSetFrozen\022c\n\037change_control_p",
      "oint_attachment\030\020 \001(\0132:.CDOTAUserMsg_Par" +
      "ticleManager.ChangeControlPointAttachmen" +
      "t\022R\n\026update_entity_position\030\021 \001(\01322.CDOT" +
      "AUserMsg_ParticleManager.UpdateEntityPos" +
      "ition\022[\n\033set_particle_fow_properties\030\022 \001" +
      "(\01326.CDOTAUserMsg_ParticleManager.SetPar" +
      "ticleFoWProperties\022H\n\021set_particle_text\030" +
      "\023 \001(\0132-.CDOTAUserMsg_ParticleManager.Set" +
      "ParticleText\022^\n\035set_particle_should_chec" +
      "k_fow\030\024 \001(\01327.CDOTAUserMsg_ParticleManag",
      "er.SetParticleShouldCheckFoW\022S\n\027set_cont" +
      "rol_point_model\030\025 \001(\01322.CDOTAUserMsg_Par" +
      "ticleManager.SetControlPointModel\022Y\n\032set" +
      "_control_point_snapshot\030\026 \001(\01325.CDOTAUse" +
      "rMsg_ParticleManager.SetControlPointSnap" +
      "shot\022P\n\025set_texture_attribute\030\027 \001(\01321.CD" +
      "OTAUserMsg_ParticleManager.SetTextureAtt" +
      "ribute\022^\n\035set_scene_object_generic_flag\030" +
      "\030 \001(\01327.CDOTAUserMsg_ParticleManager.Set" +
      "SceneObjectGenericFlag\022a\n\037set_scene_obje",
      "ct_tint_and_desat\030\031 \001(\01328.CDOTAUserMsg_P" +
      "articleManager.SetSceneObjectTintAndDesa" +
      "t\032\026\n\024ReleaseParticleIndex\032\264\001\n\016CreatePart" +
      "icle\022\033\n\023particle_name_index\030\001 \001(\006\022\023\n\013att" +
      "ach_type\030\002 \001(\005\022\025\n\rentity_handle\030\003 \001(\005\022#\n" +
      "\033entity_handle_for_modifiers\030\004 \001(\005\022\035\n\025ap" +
      "ply_voice_ban_rules\030\005 \001(\010\022\025\n\rteam_behavi" +
      "or\030\006 \001(\005\032.\n\017DestroyParticle\022\033\n\023destroy_i" +
      "mmediately\030\001 \001(\010\032N\n\030DestroyParticleInvol" +
      "ving\022\033\n\023destroy_immediately\030\001 \001(\010\022\025\n\rent",
      "ity_handle\030\003 \001(\005\032F\n\016UpdateParticle\022\025\n\rco" +
      "ntrol_point\030\001 \001(\005\022\035\n\010position\030\002 \001(\0132\013.CM" +
      "sgVector\032H\n\021UpdateParticleFwd\022\025\n\rcontrol" +
      "_point\030\001 \001(\005\022\034\n\007forward\030\002 \001(\0132\013.CMsgVect" +
      "or\032\237\001\n\024UpdateParticleOrient\022\025\n\rcontrol_p" +
      "oint\030\001 \001(\005\022\034\n\007forward\030\002 \001(\0132\013.CMsgVector" +
      "\022\036\n\005right\030\003 \001(\0132\013.CMsgVectorB\002\030\001\022\027\n\002up\030\004" +
      " \001(\0132\013.CMsgVector\022\031\n\004left\030\005 \001(\0132\013.CMsgVe" +
      "ctor\032N\n\026UpdateParticleFallback\022\025\n\rcontro" +
      "l_point\030\001 \001(\005\022\035\n\010position\030\002 \001(\0132\013.CMsgVe",
      "ctor\032t\n\024UpdateParticleOffset\022\025\n\rcontrol_" +
      "point\030\001 \001(\005\022\"\n\rorigin_offset\030\002 \001(\0132\013.CMs" +
      "gVector\022!\n\014angle_offset\030\003 \001(\0132\013.CMsgQAng" +
      "le\032\255\001\n\021UpdateParticleEnt\022\025\n\rcontrol_poin" +
      "t\030\001 \001(\005\022\025\n\rentity_handle\030\002 \001(\005\022\023\n\013attach" +
      "_type\030\003 \001(\005\022\022\n\nattachment\030\004 \001(\005\022&\n\021fallb" +
      "ack_position\030\005 \001(\0132\013.CMsgVector\022\031\n\021inclu" +
      "de_wearables\030\006 \001(\010\032-\n\027UpdateParticleSetF" +
      "rozen\022\022\n\nset_frozen\030\001 \001(\010\032/\n\030UpdateParti" +
      "cleShouldDraw\022\023\n\013should_draw\030\001 \001(\010\032e\n\034Ch",
      "angeControlPointAttachment\022\026\n\016attachment" +
      "_old\030\001 \001(\005\022\026\n\016attachment_new\030\002 \001(\005\022\025\n\ren" +
      "tity_handle\030\003 \001(\005\032L\n\024UpdateEntityPositio" +
      "n\022\025\n\rentity_handle\030\001 \001(\005\022\035\n\010position\030\002 \001" +
      "(\0132\013.CMsgVector\032e\n\030SetParticleFoWPropert" +
      "ies\022\031\n\021fow_control_point\030\001 \001(\005\022\032\n\022fow_co" +
      "ntrol_point2\030\002 \001(\005\022\022\n\nfow_radius\030\003 \001(\002\032." +
      "\n\031SetParticleShouldCheckFoW\022\021\n\tcheck_fow" +
      "\030\001 \001(\010\032A\n\024SetControlPointModel\022\025\n\rcontro" +
      "l_point\030\001 \001(\005\022\022\n\nmodel_name\030\002 \001(\t\032G\n\027Set",
      "ControlPointSnapshot\022\025\n\rcontrol_point\030\001 " +
      "\001(\005\022\025\n\rsnapshot_name\030\002 \001(\t\032\037\n\017SetParticl" +
      "eText\022\014\n\004text\030\001 \001(\t\032C\n\023SetTextureAttribu" +
      "te\022\026\n\016attribute_name\030\001 \001(\t\022\024\n\014texture_na" +
      "me\030\002 \001(\t\032/\n\031SetSceneObjectGenericFlag\022\022\n" +
      "\nflag_value\030\001 \001(\010\0329\n\032SetSceneObjectTintA" +
      "ndDesat\022\014\n\004tint\030\001 \001(\007\022\r\n\005desat\030\002 \001(\002\"\305\001\n" +
      "\032CDOTAUserMsg_OverheadEvent\022?\n\014message_t" +
      "ype\030\001 \001(\0162\024.DOTA_OVERHEAD_ALERT:\023OVERHEA" +
      "D_ALERT_GOLD\022\r\n\005value\030\002 \001(\005\022\036\n\026target_pl",
      "ayer_entindex\030\003 \001(\005\022\027\n\017target_entindex\030\004" +
      " \001(\005\022\036\n\026source_player_entindex\030\005 \001(\005\"S\n\026" +
      "CDOTAUserMsg_WorldLine\022\021\n\tplayer_id\030\001 \001(" +
      "\005\022&\n\tworldline\030\002 \001(\0132\023.CDOTAMsg_WorldLin" +
      "e\"\204\001\n\026CDOTAUserMsg_ChatWheel\022\027\n\017chat_mes" +
      "sage_id\030\001 \001(\r\022\021\n\tplayer_id\030\002 \001(\r\022\022\n\nacco" +
      "unt_id\030\003 \001(\r\022\025\n\rparam_hero_id\030\004 \001(\r\022\023\n\013e" +
      "moticon_id\030\005 \001(\r\"3\n\"CDOTAUserMsg_Gamerul" +
      "esStateChanged\022\r\n\005state\030\001 \001(\r\"[\n\032CDOTAUs" +
      "erMsg_SendStatPopup\022\021\n\tplayer_id\030\001 \001(\005\022*",
      "\n\tstatpopup\030\002 \001(\0132\027.CDOTAMsg_SendStatPop" +
      "up\"Z\n!CDOTAUserMsg_DismissAllStatPopups\022" +
      "5\n\rdismissallmsg\030\001 \001(\0132\036.CDOTAMsg_Dismis" +
      "sAllStatPopups\"\217\001\n%CDOTAUserMsg_SendRosh" +
      "anSpectatorPhase\0226\n\005phase\030\001 \001(\0162\022.DOTA_R" +
      "OSHAN_PHASE:\023k_SRSP_ROSHAN_ALIVE\022\030\n\020phas" +
      "e_start_time\030\002 \001(\005\022\024\n\014phase_length\030\003 \001(\005" +
      "\"C\n\034CDOTAUserMsg_SendRoshanPopup\022\021\n\trecl" +
      "aimed\030\001 \001(\010\022\020\n\010gametime\030\002 \001(\005\"\310\002\n\032CDOTAU" +
      "serMsg_TE_Projectile\022\017\n\007hSource\030\001 \001(\005\022\017\n",
      "\007hTarget\030\002 \001(\005\022\021\n\tmoveSpeed\030\003 \001(\005\022\030\n\020sou" +
      "rceAttachment\030\004 \001(\005\022\034\n\024particleSystemHan" +
      "dle\030\005 \001(\003\022\021\n\tdodgeable\030\006 \001(\010\022\020\n\010isAttack" +
      "\030\007 \001(\010\022\020\n\010isEvaded\030\010 \001(\010\022\022\n\nexpireTime\030\t" +
      " \001(\002\022\025\n\rmaximpacttime\030\n \001(\002\022\025\n\rcolorgemc" +
      "olor\030\013 \001(\007\022\023\n\013launch_tick\030\014 \001(\005\022\016\n\006handl" +
      "e\030\r \001(\005\022\037\n\nvTargetLoc\030\016 \001(\0132\013.CMsgVector" +
      "\"\252\002\n\035CDOTAUserMsg_TE_ProjectileLoc\022\037\n\nvS" +
      "ourceLoc\030\001 \001(\0132\013.CMsgVector\022\017\n\007hTarget\030\002" +
      " \001(\005\022\021\n\tmoveSpeed\030\003 \001(\005\022\034\n\024particleSyste",
      "mHandle\030\004 \001(\003\022\021\n\tdodgeable\030\005 \001(\010\022\020\n\010isAt" +
      "tack\030\006 \001(\010\022\020\n\010isEvaded\030\010 \001(\010\022\022\n\nexpireTi" +
      "me\030\t \001(\002\022\037\n\nvTargetLoc\030\n \001(\0132\013.CMsgVecto" +
      "r\022\025\n\rcolorgemcolor\030\013 \001(\007\022\023\n\013launch_tick\030" +
      "\014 \001(\005\022\016\n\006handle\030\r \001(\005\"3\n!CDOTAUserMsg_TE" +
      "_DestroyProjectile\022\016\n\006handle\030\001 \001(\005\"b\n\037CD" +
      "OTAUserMsg_TE_DotaBloodImpact\022\016\n\006entity\030" +
      "\001 \001(\005\022\r\n\005scale\030\002 \001(\002\022\017\n\007xnormal\030\003 \001(\002\022\017\n" +
      "\007ynormal\030\004 \001(\002\"\270\002\n\030CDOTAUserMsg_AbilityP" +
      "ing\022\021\n\tplayer_id\030\001 \001(\r\022\022\n\nability_id\030\002 \001",
      "(\r\0229\n\004type\030\003 \001(\0162\027.DOTA_ABILITY_PING_TYP" +
      "E:\022ABILITY_PING_READY\022\030\n\020cooldown_second" +
      "s\030\004 \001(\r\022\r\n\005level\030\005 \001(\r\022\017\n\007passive\030\006 \001(\010\022" +
      "\023\n\013mana_needed\030\007 \001(\r\022\021\n\tentity_id\030\010 \001(\r\022" +
      "\027\n\017primary_charges\030\t \001(\005\022\031\n\021secondary_ch" +
      "arges\030\n \001(\005\022\021\n\tcaster_id\030\013 \001(\r\022\021\n\tctrl_h" +
      "eld\030\014 \001(\010\"\221\001\n\035CDOTAUserMsg_TE_UnitAnimat" +
      "ion\022\016\n\006entity\030\001 \001(\005\022\027\n\017sequenceVariant\030\002" +
      " \001(\005\022\024\n\014playbackrate\030\003 \001(\002\022\021\n\tcastpoint\030" +
      "\004 \001(\002\022\014\n\004type\030\005 \001(\005\022\020\n\010activity\030\006 \001(\005\"@\n",
      " CDOTAUserMsg_TE_UnitAnimationEnd\022\016\n\006ent" +
      "ity\030\001 \001(\005\022\014\n\004snap\030\002 \001(\010\"Y\n\031CDOTAUserMsg_" +
      "AbilitySteal\022\021\n\tplayer_id\030\001 \001(\r\022\022\n\nabili" +
      "ty_id\030\002 \001(\r\022\025\n\rability_level\030\003 \001(\r\"f\n\034CD" +
      "OTAUserMsg_StatsHeroLookup\022\021\n\tplayer_id\030" +
      "\001 \001(\005\022\017\n\007hero_id\030\002 \001(\005\022\021\n\thero_name\030\003 \001(" +
      "\t\022\017\n\007persona\030\004 \001(\t\"\372\001\n\"CDOTAUserMsg_Stat" +
      "sHeroPositionInfo\022\030\n\020average_position\030\001 " +
      "\001(\002\022J\n\020position_details\030\002 \003(\01320.CDOTAUse" +
      "rMsg_StatsHeroPositionInfo.PositionPair\032",
      "n\n\014PositionPair\022F\n\021position_category\030\001 \001" +
      "(\0162\027.DOTA_POSITION_CATEGORY:\022DOTA_POSITI" +
      "ON_NONE\022\026\n\016position_count\030\002 \001(\r\"\254\001\n!CDOT" +
      "AUserMsg_StatsPlayerKillShare\022\021\n\tplayer_" +
      "id\030\001 \001(\005\022\032\n\022kill_share_percent\030\002 \001(\002\022\024\n\014" +
      "player_loc_x\030\003 \001(\002\022\024\n\014player_loc_y\030\004 \001(\002" +
      "\022\026\n\016health_percent\030\005 \001(\002\022\024\n\014mana_percent" +
      "\030\006 \001(\002\"\304\001\n\035CDOTAUserMsg_StatsKillDetails" +
      "\022\021\n\tvictim_id\030\001 \001(\r\0227\n\013kill_shares\030\002 \003(\013" +
      "2\".CDOTAUserMsg_StatsPlayerKillShare\022\026\n\016",
      "damage_to_kill\030\003 \001(\r\022\030\n\020effective_health" +
      "\030\004 \001(\r\022\022\n\ndeath_time\030\005 \001(\002\022\021\n\tkiller_id\030" +
      "\006 \001(\r\"v\n\023CMsgHeroAbilityStat\0227\n\tstat_typ" +
      "e\030\001 \001(\0162\016.EHeroStatType:\024k_EHeroStatType" +
      "_None\022\021\n\tint_value\030\002 \001(\005\022\023\n\013float_value\030" +
      "\003 \001(\002\"d\n\034CMsgCombatAnalyzerPlayerStat\022\022\n" +
      "\naccount_id\030\001 \001(\r\0220\n\022hero_ability_stats\030" +
      "\002 \003(\0132\024.CMsgHeroAbilityStat\"`\n\027CMsgComba" +
      "tAnalyzerStats\022\020\n\010match_id\030\001 \001(\004\0223\n\014play" +
      "er_stats\030\002 \003(\0132\035.CMsgCombatAnalyzerPlaye",
      "rStat\"\334\001\n\036CDOTAUserMsg_ProjectionAbility" +
      "\022\022\n\nability_id\030\001 \001(\r\022\030\n\020caster_ent_index" +
      "\030\002 \001(\005\022\023\n\013caster_team\030\003 \001(\005\022\023\n\013channel_e" +
      "nd\030\004 \001(\010\022\033\n\006origin\030\005 \001(\0132\013.CMsgVector\022\031\n" +
      "\021track_caster_only\030\006 \001(\010\022\020\n\010end_time\030\007 \001" +
      "(\002\022\030\n\020victim_ent_index\030\010 \001(\005\"a\n\034CDOTAUse" +
      "rMsg_ProjectionEvent\0223\n\010event_id\030\001 \001(\0162\021" +
      ".EProjectionEvent:\016ePE_FirstBlood\022\014\n\004tea" +
      "m\030\002 \001(\r\"B\n\024CDOTAUserMsg_XPAlert\022\021\n\tplaye" +
      "r_id\030\001 \001(\r\022\027\n\017target_entindex\030\002 \001(\r\"}\n\034C",
      "DOTAUserMsg_TalentTreeAlert\022\021\n\tplayer_id" +
      "\030\001 \001(\r\022\027\n\017target_entindex\030\002 \001(\r\022\022\n\nabili" +
      "ty_id\030\003 \001(\005\022\014\n\004slot\030\004 \001(\005\022\017\n\007learned\030\005 \001" +
      "(\010\"\"\n CDOTAUserMsg_UpdateQuestProgress\"A" +
      "\n\036CDOTAUserMsg_SelectPenaltyGold\022\021\n\tplay" +
      "er_id\030\001 \002(\r\022\014\n\004cost\030\002 \001(\021\"z\n\033CDOTAUserMs" +
      "g_RollDiceResult\022\021\n\tplayer_id\030\001 \001(\r\022\024\n\014c" +
      "hannel_type\030\002 \001(\r\022\020\n\010roll_min\030\003 \001(\r\022\020\n\010r" +
      "oll_max\030\004 \001(\r\022\016\n\006result\030\005 \001(\r\"V\n\033CDOTAUs" +
      "erMsg_FlipCoinResult\022\021\n\tplayer_id\030\001 \001(\r\022",
      "\024\n\014channel_type\030\002 \001(\r\022\016\n\006result\030\003 \001(\010\"N\n" +
      "#CDOTAUserMessage_TeamCaptainChanged\022\014\n\004" +
      "team\030\001 \001(\r\022\031\n\021captain_player_id\030\002 \001(\r\"k\n" +
      "\036CDOTAUserMsg_HeroRelicProgress\022\027\n\017hero_" +
      "relic_type\030\001 \001(\r\022\r\n\005value\030\002 \001(\r\022\017\n\007ehand" +
      "le\030\003 \001(\r\022\020\n\010event_id\030\004 \001(\r\"\210\001\n\031CDOTAUser" +
      "Msg_DamageReport\022\021\n\tplayer_id\030\001 \001(\r\022\026\n\016t" +
      "arget_hero_id\030\002 \001(\r\022\026\n\016source_hero_id\030\003 " +
      "\001(\r\022\025\n\rdamage_amount\030\004 \001(\005\022\021\n\tbroadcast\030" +
      "\005 \001(\010\"u\n\031CDOTAUserMsg_SalutePlayer\022\030\n\020so",
      "urce_player_id\030\001 \001(\005\022\030\n\020target_player_id" +
      "\030\002 \001(\005\022\022\n\ntip_amount\030\003 \001(\r\022\020\n\010event_id\030\004" +
      " \001(\r\"<\n\025CDOTAUserMsg_TipAlert\022\021\n\tplayer_" +
      "id\030\001 \001(\r\022\020\n\010tip_text\030\002 \001(\t\"X\n\032CDOTAUserM" +
      "sg_ESArcanaCombo\022\017\n\007ehandle\030\001 \001(\r\022\023\n\013com" +
      "bo_count\030\002 \001(\r\022\024\n\014arcana_level\030\003 \001(\r\"`\n!" +
      "CDOTAUserMsg_ESArcanaComboSummary\022\017\n\007eha" +
      "ndle\030\001 \001(\r\022\023\n\013combo_count\030\002 \001(\r\022\025\n\rdamag" +
      "e_amount\030\003 \001(\r\"w\n\032CDOTAUserMsg_OMArcanaC" +
      "ombo\022\017\n\007ehandle\030\001 \001(\r\022\030\n\020multicast_amoun",
      "t\030\002 \001(\r\022\024\n\014arcana_level\030\003 \001(\r\022\030\n\020multica" +
      "st_chance\030\004 \001(\r\"e\n\036CDOTAUserMsg_HighFive" +
      "Completed\022\023\n\013player_id_1\030\001 \001(\r\022\023\n\013player" +
      "_id_2\030\002 \001(\r\022\031\n\021special_high_five\030\003 \001(\010\"5" +
      "\n CDOTAUserMsg_HighFiveLeftHanging\022\021\n\tpl" +
      "ayer_id\030\001 \001(\r\"f\n\032CDOTAUserMsg_ShovelUnea" +
      "rth\022\021\n\tplayer_id\030\001 \001(\r\022\020\n\010all_chat\030\002 \001(\010" +
      "\022\021\n\tlocstring\030\003 \001(\t\022\020\n\010quantity\030\004 \001(\r\"\360\001" +
      "\n\031CDOTAUserMsg_AllStarEvent\022\030\n\020source_pl" +
      "ayer_id\030\001 \001(\005\022\030\n\020target_player_id\030\002 \001(\005\022",
      "\024\n\014point_amount\030\003 \001(\r\022\020\n\010event_id\030\004 \001(\r\022" +
      "=\n\rplayer_scores\030\005 \003(\0132&.CDOTAUserMsg_Al" +
      "lStarEvent.PlayerScore\0328\n\013PlayerScore\022\021\n" +
      "\tplayer_id\030\001 \001(\005\022\026\n\016score_sans_kda\030\002 \001(\r" +
      "\">\n\037CDOTAUserMsg_QueuedOrderRemoved\022\033\n\023u" +
      "nit_order_sequence\030\001 \003(\r\"\306\001\n\033CDOTAUserMs" +
      "g_DebugChallenge\022\026\n\016challenge_type\030\001 \002(\r" +
      "\022\032\n\022challenge_query_id\030\002 \002(\r\022\020\n\010event_id" +
      "\030\003 \002(\r\022\023\n\013instance_id\030\004 \001(\r\022\027\n\017challenge" +
      "_var_0\030\005 \001(\r\022\027\n\017challenge_var_1\030\006 \001(\r\022\032\n",
      "\022challenge_max_rank\030\007 \001(\r\"w\n\035CDOTAUserMs" +
      "g_FoundNeutralItem\022\021\n\tplayer_id\030\001 \001(\r\022\027\n" +
      "\017item_ability_id\030\002 \001(\r\022\021\n\titem_tier\030\003 \001(" +
      "\r\022\027\n\017tier_item_count\030\004 \001(\r\"I\n\034CDOTAUserM" +
      "sg_OutpostCaptured\022\030\n\020outpost_entindex\030\001" +
      " \001(\r\022\017\n\007team_id\030\002 \001(\r\"C\n\035CDOTAUserMsg_Ou" +
      "tpostGrantedXP\022\017\n\007team_id\030\001 \001(\r\022\021\n\txp_am" +
      "ount\030\002 \001(\r\"5\n\035CDOTAUserMsg_MoveCameraToU" +
      "nit\022\024\n\014unit_ehandle\030\001 \001(\005\"\230\001\n\036CDOTAUserM" +
      "sg_PauseMinigameData\022:\n\tdata_bits\030\001 \003(\0132",
      "\'.CDOTAUserMsg_PauseMinigameData.DataBit" +
      "\032:\n\007DataBit\022\r\n\005index\030\001 \001(\r\022\014\n\004data\030\002 \001(\005" +
      "\022\022\n\ndata_extra\030\003 \001(\003\"\241\002\n\'CDOTAUserMsg_Ve" +
      "rsusScene_PlayerBehavior\022\021\n\tplayer_id\030\001 " +
      "\001(\r\022S\n\010behavior\030\002 \001(\0162\037.EDOTAVersusScene" +
      "PlayerBehavior: VS_PLAYER_BEHAVIOR_PLAY_" +
      "ACTIVITY\0220\n\rplay_activity\030\003 \001(\0132\031.Versus" +
      "Scene_PlayActivity\022*\n\nchat_wheel\030\004 \001(\0132\026" +
      ".VersusScene_ChatWheel\0220\n\rplayback_rate\030" +
      "\005 \001(\0132\031.VersusScene_PlaybackRate\"t\n\036CDOT",
      "AUserMsg_QoP_ArcanaSummary\022\017\n\007ehandle\030\001 " +
      "\001(\r\022\024\n\014arcana_level\030\002 \001(\r\022\023\n\013players_hit" +
      "\030\003 \001(\r\022\026\n\016players_killed\030\004 \001(\r\"J\n\036CDOTAU" +
      "serMsg_HotPotato_Created\022\023\n\013player_id_1\030" +
      "\001 \001(\r\022\023\n\013player_id_2\030\002 \001(\r\"4\n\037CDOTAUserM" +
      "sg_HotPotato_Exploded\022\021\n\tplayer_id\030\001 \001(\r" +
      "\"Y\n\037CDOTAUserMsg_WK_Arcana_Progress\022\017\n\007e" +
      "handle\030\001 \001(\r\022\024\n\014arcana_level\030\002 \001(\r\022\017\n\007he" +
      "ro_id\030\003 \001(\r\"\212\004\n$CDOTAUserMsg_GuildChalle" +
      "nge_Progress\022M\n\017player_progress\030\001 \003(\01324.",
      "CDOTAUserMsg_GuildChallenge_Progress.Pla" +
      "yerProgress\022\020\n\010guild_id\030\002 \001(\r\022\035\n\025challen" +
      "ge_instance_id\030\003 \001(\r\022\033\n\023challenge_parame" +
      "ter\030\004 \001(\r\022f\n\016challenge_type\030\005 \001(\01624.CDOT" +
      "AUserMsg_GuildChallenge_Progress.EChalle" +
      "ngeType:\030k_EChallengeType_Invalid\022#\n\033cha" +
      "llenge_progress_at_start\030\007 \001(\r\022\020\n\010comple" +
      "te\030\010 \001(\010\0325\n\016PlayerProgress\022\021\n\tplayer_id\030" +
      "\001 \001(\r\022\020\n\010progress\030\006 \001(\r\"o\n\016EChallengeTyp" +
      "e\022\034\n\030k_EChallengeType_Invalid\020\000\022 \n\034k_ECh",
      "allengeType_Cooperative\020\001\022\035\n\031k_EChalleng" +
      "eType_Contract\020\002\"\265\001\n\035CDOTAUserMsg_WRArca" +
      "naProgress\022\017\n\007ehandle\030\001 \001(\r\022\026\n\016target_eh" +
      "andle\030\002 \001(\r\022\025\n\rarrows_landed\030\003 \001(\r\022\024\n\014da" +
      "mage_dealt\030\004 \001(\r\022\021\n\ttarget_hp\030\005 \001(\r\022\025\n\rt" +
      "arget_max_hp\030\006 \001(\r\022\024\n\014arcana_level\030\007 \001(\r" +
      "\"\305\001\n\034CDOTAUserMsg_WRArcanaSummary\022\017\n\007eha" +
      "ndle\030\001 \001(\r\022\026\n\016target_ehandle\030\002 \001(\r\022\025\n\rar" +
      "rows_landed\030\003 \001(\r\022\024\n\014damage_dealt\030\004 \001(\r\022" +
      "\021\n\ttarget_hp\030\005 \001(\r\022\025\n\rtarget_max_hp\030\006 \001(",
      "\r\022\024\n\014arcana_level\030\007 \001(\r\022\017\n\007success\030\010 \001(\010" +
      "\"\203\001\n\037CDOTAUserMsg_EmptyItemSlotAlert\022\030\n\020" +
      "source_player_id\030\001 \001(\005\022\030\n\020target_player_" +
      "id\030\002 \001(\005\022\022\n\nslot_index\030\003 \001(\005\022\030\n\020cooldown" +
      "_seconds\030\004 \001(\005\"\247\001\n\034CDOTAUserMsg_AghsStat" +
      "usAlert\022\030\n\020source_player_id\030\001 \001(\r\022\030\n\020tar" +
      "get_player_id\030\002 \001(\r\022\027\n\017target_entindex\030\003" +
      " \001(\r\022\022\n\nalert_type\030\004 \001(\r\022\023\n\013has_scepter\030" +
      "\005 \001(\010\022\021\n\thas_shard\030\006 \001(\010\"Z\n\031CDOTAUserMsg" +
      "_MutedPlayers\022\035\n\025text_muted_player_ids\030\001",
      " \003(\005\022\036\n\026voice_muted_player_ids\030\002 \003(\005\"\376\002\n" +
      "\032CDOTAUserMsg_ContextualTip\022\016\n\006tip_id\030\001 " +
      "\001(\005\022\034\n\024referenced_abilities\030\002 \003(\t\022\030\n\020ref" +
      "erenced_units\030\003 \003(\t\022\030\n\020panorama_classes\030" +
      "\004 \003(\t\022\030\n\020force_annotation\030\005 \001(\010\022\017\n\007varia" +
      "nt\030\006 \001(\005\022\021\n\tint_param\030\007 \001(\005\022\022\n\nint_param" +
      "2\030\010 \001(\005\022\023\n\013float_param\030\t \001(\002\022\024\n\014float_pa" +
      "ram2\030\n \001(\002\022\024\n\014string_param\030\013 \001(\t\022\025\n\rstri" +
      "ng_param2\030\014 \001(\t\022\031\n\021tip_text_override\030\r \001" +
      "(\t\022\037\n\027tip_annotation_override\030\016 \001(\t\022\030\n\020p",
      "anorama_snippet\030\017 \001(\t\"`\n\030CDOTAUserMsg_Ch" +
      "atMessage\022\030\n\020source_player_id\030\001 \001(\005\022\024\n\014c" +
      "hannel_type\030\002 \001(\r\022\024\n\014message_text\030\003 \001(\t\"" +
      "\221\017\n\026CMsgDOTACombatLogEntry\022:\n\004type\030\001 \001(\016" +
      "2\025.DOTA_COMBATLOG_TYPES:\025DOTA_COMBATLOG_" +
      "DAMAGE\022\023\n\013target_name\030\002 \001(\r\022\032\n\022target_so" +
      "urce_name\030\003 \001(\r\022\025\n\rattacker_name\030\004 \001(\r\022\032" +
      "\n\022damage_source_name\030\005 \001(\r\022\026\n\016inflictor_" +
      "name\030\006 \001(\r\022\034\n\024is_attacker_illusion\030\007 \001(\010" +
      "\022\030\n\020is_attacker_hero\030\010 \001(\010\022\032\n\022is_target_",
      "illusion\030\t \001(\010\022\026\n\016is_target_hero\030\n \001(\010\022\032" +
      "\n\022is_visible_radiant\030\013 \001(\010\022\027\n\017is_visible" +
      "_dire\030\014 \001(\010\022\r\n\005value\030\r \001(\r\022\016\n\006health\030\016 \001" +
      "(\005\022\021\n\ttimestamp\030\017 \001(\002\022\025\n\rstun_duration\030\020" +
      " \001(\002\022\025\n\rslow_duration\030\021 \001(\002\022\034\n\024is_abilit" +
      "y_toggle_on\030\022 \001(\010\022\035\n\025is_ability_toggle_o" +
      "ff\030\023 \001(\010\022\025\n\rability_level\030\024 \001(\r\022\022\n\nlocat" +
      "ion_x\030\025 \001(\002\022\022\n\nlocation_y\030\026 \001(\002\022\023\n\013gold_" +
      "reason\030\027 \001(\r\022\025\n\rtimestamp_raw\030\030 \001(\002\022\031\n\021m" +
      "odifier_duration\030\031 \001(\002\022\021\n\txp_reason\030\032 \001(",
      "\r\022\021\n\tlast_hits\030\033 \001(\r\022\025\n\rattacker_team\030\034 " +
      "\001(\r\022\023\n\013target_team\030\035 \001(\r\022\030\n\020obs_wards_pl" +
      "aced\030\036 \001(\r\022\026\n\016assist_player0\030\037 \001(\r\022\026\n\016as" +
      "sist_player1\030  \001(\r\022\026\n\016assist_player2\030! \001" +
      "(\r\022\026\n\016assist_player3\030\" \001(\r\022\023\n\013stack_coun" +
      "t\030# \001(\r\022\027\n\017hidden_modifier\030$ \001(\010\022\032\n\022is_t" +
      "arget_building\030% \001(\010\022\031\n\021neutral_camp_typ" +
      "e\030& \001(\r\022\021\n\trune_type\030\' \001(\r\022\026\n\016assist_pla" +
      "yers\030( \003(\r\022\024\n\014is_heal_save\030) \001(\010\022\033\n\023is_u" +
      "ltimate_ability\030* \001(\010\022\033\n\023attacker_hero_l",
      "evel\030+ \001(\r\022\031\n\021target_hero_level\030, \001(\r\022\013\n" +
      "\003xpm\030- \001(\r\022\013\n\003gpm\030. \001(\r\022\026\n\016event_locatio" +
      "n\030/ \001(\r\022\026\n\016target_is_self\0300 \001(\010\022\023\n\013damag" +
      "e_type\0301 \001(\r\022\035\n\025invisibility_modifier\0302 " +
      "\001(\010\022\027\n\017damage_category\0303 \001(\r\022\020\n\010networth" +
      "\0304 \001(\r\022\025\n\rbuilding_type\0305 \001(\r\022!\n\031modifie" +
      "r_elapsed_duration\0306 \001(\002\022\030\n\020silence_modi" +
      "fier\0307 \001(\010\022\033\n\023heal_from_lifesteal\0308 \001(\010\022" +
      "\027\n\017modifier_purged\0309 \001(\010\022\024\n\014spell_evaded" +
      "\030: \001(\010\022\"\n\032motion_controller_modifier\030; \001",
      "(\010\022\027\n\017long_range_kill\030< \001(\010\022\036\n\026modifier_" +
      "purge_ability\030= \001(\r\022\032\n\022modifier_purge_np" +
      "c\030> \001(\r\022\025\n\rroot_modifier\030? \001(\010\022\036\n\026total_" +
      "unit_death_count\030@ \001(\r\022\025\n\raura_modifier\030" +
      "A \001(\010\022\035\n\025armor_debuff_modifier\030B \001(\010\022#\n\033" +
      "no_physical_damage_modifier\030C \001(\010\022\030\n\020mod" +
      "ifier_ability\030D \001(\r\022\027\n\017modifier_hidden\030E" +
      " \001(\010\022#\n\033inflictor_is_stolen_ability\030F \001(" +
      "\010\022\030\n\020kill_eater_event\030G \001(\r\022\031\n\021unit_stat" +
      "us_label\030H \001(\r\022\036\n\026spell_generated_attack",
      "\030I \001(\010\022\025\n\rat_night_time\030J \001(\010\022\034\n\024attacke" +
      "r_has_scepter\030K \001(\010*\277\013\n\024DOTA_COMBATLOG_T" +
      "YPES\022#\n\026DOTA_COMBATLOG_INVALID\020\377\377\377\377\377\377\377\377\377" +
      "\001\022\031\n\025DOTA_COMBATLOG_DAMAGE\020\000\022\027\n\023DOTA_COM" +
      "BATLOG_HEAL\020\001\022\037\n\033DOTA_COMBATLOG_MODIFIER" +
      "_ADD\020\002\022\"\n\036DOTA_COMBATLOG_MODIFIER_REMOVE" +
      "\020\003\022\030\n\024DOTA_COMBATLOG_DEATH\020\004\022\032\n\026DOTA_COM" +
      "BATLOG_ABILITY\020\005\022\027\n\023DOTA_COMBATLOG_ITEM\020" +
      "\006\022\033\n\027DOTA_COMBATLOG_LOCATION\020\007\022\027\n\023DOTA_C" +
      "OMBATLOG_GOLD\020\010\022\035\n\031DOTA_COMBATLOG_GAME_S",
      "TATE\020\t\022\025\n\021DOTA_COMBATLOG_XP\020\n\022\033\n\027DOTA_CO" +
      "MBATLOG_PURCHASE\020\013\022\032\n\026DOTA_COMBATLOG_BUY" +
      "BACK\020\014\022\"\n\036DOTA_COMBATLOG_ABILITY_TRIGGER" +
      "\020\r\022\036\n\032DOTA_COMBATLOG_PLAYERSTATS\020\016\022\034\n\030DO" +
      "TA_COMBATLOG_MULTIKILL\020\017\022\035\n\031DOTA_COMBATL" +
      "OG_KILLSTREAK\020\020\022%\n!DOTA_COMBATLOG_TEAM_B" +
      "UILDING_KILL\020\021\022\036\n\032DOTA_COMBATLOG_FIRST_B" +
      "LOOD\020\022\022\'\n#DOTA_COMBATLOG_MODIFIER_STACK_" +
      "EVENT\020\023\022%\n!DOTA_COMBATLOG_NEUTRAL_CAMP_S" +
      "TACK\020\024\022\036\n\032DOTA_COMBATLOG_PICKUP_RUNE\020\025\022%",
      "\n!DOTA_COMBATLOG_REVEALED_INVISIBLE\020\026\022\035\n" +
      "\031DOTA_COMBATLOG_HERO_SAVED\020\027\022 \n\034DOTA_COM" +
      "BATLOG_MANA_RESTORED\020\030\022\037\n\033DOTA_COMBATLOG" +
      "_HERO_LEVELUP\020\031\022#\n\037DOTA_COMBATLOG_BOTTLE" +
      "_HEAL_ALLY\020\032\022 \n\034DOTA_COMBATLOG_ENDGAME_S" +
      "TATS\020\033\022$\n DOTA_COMBATLOG_INTERRUPT_CHANN" +
      "EL\020\034\022\036\n\032DOTA_COMBATLOG_ALLIED_GOLD\020\035\022\036\n\032" +
      "DOTA_COMBATLOG_AEGIS_TAKEN\020\036\022\036\n\032DOTA_COM" +
      "BATLOG_MANA_DAMAGE\020\037\022,\n(DOTA_COMBATLOG_P" +
      "HYSICAL_DAMAGE_PREVENTED\020 \022 \n\034DOTA_COMBA",
      "TLOG_UNIT_SUMMONED\020!\022\037\n\033DOTA_COMBATLOG_A" +
      "TTACK_EVADE\020\"\022\033\n\027DOTA_COMBATLOG_TREE_CUT" +
      "\020#\022\"\n\036DOTA_COMBATLOG_SUCCESSFUL_SCAN\020$\022!" +
      "\n\035DOTA_COMBATLOG_END_KILLSTREAK\020%\022$\n DOT" +
      "A_COMBATLOG_BLOODSTONE_CHARGE\020&\022\"\n\036DOTA_" +
      "COMBATLOG_CRITICAL_DAMAGE\020\'\022\037\n\033DOTA_COMB" +
      "ATLOG_SPELL_ABSORB\020(\022\"\n\036DOTA_COMBATLOG_U" +
      "NIT_TELEPORTED\020)\022#\n\037DOTA_COMBATLOG_KILL_" +
      "EATER_EVENT\020**\361\035\n\021DOTA_CHAT_MESSAGE\022!\n\024C" +
      "HAT_MESSAGE_INVALID\020\377\377\377\377\377\377\377\377\377\001\022\032\n\026CHAT_M",
      "ESSAGE_HERO_KILL\020\000\022\032\n\026CHAT_MESSAGE_HERO_" +
      "DENY\020\001\022\036\n\032CHAT_MESSAGE_BARRACKS_KILL\020\002\022\033" +
      "\n\027CHAT_MESSAGE_TOWER_KILL\020\003\022\033\n\027CHAT_MESS" +
      "AGE_TOWER_DENY\020\004\022\033\n\027CHAT_MESSAGE_FIRSTBL" +
      "OOD\020\005\022\034\n\030CHAT_MESSAGE_STREAK_KILL\020\006\022\030\n\024C" +
      "HAT_MESSAGE_BUYBACK\020\007\022\026\n\022CHAT_MESSAGE_AE" +
      "GIS\020\010\022\034\n\030CHAT_MESSAGE_ROSHAN_KILL\020\t\022\035\n\031C" +
      "HAT_MESSAGE_COURIER_LOST\020\n\022\"\n\036CHAT_MESSA" +
      "GE_COURIER_RESPAWNED\020\013\022\033\n\027CHAT_MESSAGE_G" +
      "LYPH_USED\020\014\022\036\n\032CHAT_MESSAGE_ITEM_PURCHAS",
      "E\020\r\022\030\n\024CHAT_MESSAGE_CONNECT\020\016\022\033\n\027CHAT_ME" +
      "SSAGE_DISCONNECT\020\017\022.\n*CHAT_MESSAGE_DISCO" +
      "NNECT_WAIT_FOR_RECONNECT\020\020\022*\n&CHAT_MESSA" +
      "GE_DISCONNECT_TIME_REMAINING\020\021\0221\n-CHAT_M" +
      "ESSAGE_DISCONNECT_TIME_REMAINING_PLURAL\020" +
      "\022\022\032\n\026CHAT_MESSAGE_RECONNECT\020\023\022\034\n\030CHAT_ME" +
      "SSAGE_PLAYER_LEFT\020\024\022\036\n\032CHAT_MESSAGE_SAFE" +
      "_TO_LEAVE\020\025\022\034\n\030CHAT_MESSAGE_RUNE_PICKUP\020" +
      "\026\022\034\n\030CHAT_MESSAGE_RUNE_BOTTLE\020\027\022\031\n\025CHAT_" +
      "MESSAGE_INTHEBAG\020\030\022\033\n\027CHAT_MESSAGE_SECRE",
      "TSHOP\020\031\022#\n\037CHAT_MESSAGE_ITEM_AUTOPURCHAS" +
      "ED\020\032\022\037\n\033CHAT_MESSAGE_ITEMS_COMBINED\020\033\022\035\n" +
      "\031CHAT_MESSAGE_SUPER_CREEPS\020\034\022%\n!CHAT_MES" +
      "SAGE_CANT_USE_ACTION_ITEM\020\035\022\"\n\036CHAT_MESS" +
      "AGE_CHARGES_EXHAUSTED\020\036\022\032\n\026CHAT_MESSAGE_" +
      "CANTPAUSE\020\037\022\035\n\031CHAT_MESSAGE_NOPAUSESLEFT" +
      "\020 \022\035\n\031CHAT_MESSAGE_CANTPAUSEYET\020!\022\027\n\023CHA" +
      "T_MESSAGE_PAUSED\020\"\022\"\n\036CHAT_MESSAGE_UNPAU" +
      "SE_COUNTDOWN\020#\022\031\n\025CHAT_MESSAGE_UNPAUSED\020" +
      "$\022\036\n\032CHAT_MESSAGE_AUTO_UNPAUSED\020%\022\032\n\026CHA",
      "T_MESSAGE_YOUPAUSED\020&\022 \n\034CHAT_MESSAGE_CA" +
      "NTUNPAUSETEAM\020\'\022\"\n\036CHAT_MESSAGE_VOICE_TE" +
      "XT_BANNED\020)\022.\n*CHAT_MESSAGE_SPECTATORS_W" +
      "ATCHING_THIS_GAME\020*\022 \n\034CHAT_MESSAGE_REPO" +
      "RT_REMINDER\020+\022\032\n\026CHAT_MESSAGE_ECON_ITEM\020" +
      ",\022\026\n\022CHAT_MESSAGE_TAUNT\020-\022\027\n\023CHAT_MESSAG" +
      "E_RANDOM\020.\022\030\n\024CHAT_MESSAGE_RD_TURN\020/\022 \n\034" +
      "CHAT_MESSAGE_DROP_RATE_BONUS\0201\022!\n\035CHAT_M" +
      "ESSAGE_NO_BATTLE_POINTS\0202\022\035\n\031CHAT_MESSAG" +
      "E_DENIED_AEGIS\0203\022\036\n\032CHAT_MESSAGE_INFORMA",
      "TIONAL\0204\022\035\n\031CHAT_MESSAGE_AEGIS_STOLEN\0205\022" +
      "\035\n\031CHAT_MESSAGE_ROSHAN_CANDY\0206\022\034\n\030CHAT_M" +
      "ESSAGE_ITEM_GIFTED\0207\022\'\n#CHAT_MESSAGE_HER" +
      "O_KILL_WITH_GREEVIL\0208\022(\n$CHAT_MESSAGE_HO" +
      "LDOUT_TOWER_DESTROYED\0209\022\'\n#CHAT_MESSAGE_" +
      "HOLDOUT_WALL_DESTROYED\020:\022&\n\"CHAT_MESSAGE" +
      "_HOLDOUT_WALL_FINISHED\020;\022)\n%CHAT_MESSAGE" +
      "_PLAYER_LEFT_LIMITED_HERO\020>\0221\n-CHAT_MESS" +
      "AGE_ABANDON_LIMITED_HERO_EXPLANATION\020?\022(" +
      "\n$CHAT_MESSAGE_DISCONNECT_LIMITED_HERO\020@",
      "\0223\n/CHAT_MESSAGE_LOW_PRIORITY_COMPLETED_" +
      "EXPLANATION\020A\022,\n(CHAT_MESSAGE_RECRUITMEN" +
      "T_DROP_RATE_BONUS\020B\0221\n-CHAT_MESSAGE_FROS" +
      "TIVUS_SHINING_BOOSTER_ACTIVE\020C\022 \n\034CHAT_M" +
      "ESSAGE_PLAYER_LEFT_AFK\020I\0222\n.CHAT_MESSAGE" +
      "_PLAYER_LEFT_DISCONNECTED_TOO_LONG\020J\022!\n\035" +
      "CHAT_MESSAGE_PLAYER_ABANDONED\020K\022%\n!CHAT_" +
      "MESSAGE_PLAYER_ABANDONED_AFK\020L\0227\n3CHAT_M" +
      "ESSAGE_PLAYER_ABANDONED_DISCONNECTED_TOO" +
      "_LONG\020M\022#\n\037CHAT_MESSAGE_WILL_NOT_BE_SCOR",
      "ED\020N\022*\n&CHAT_MESSAGE_WILL_NOT_BE_SCORED_" +
      "RANKED\020O\022+\n\'CHAT_MESSAGE_WILL_NOT_BE_SCO" +
      "RED_NETWORK\020P\0222\n.CHAT_MESSAGE_WILL_NOT_B" +
      "E_SCORED_NETWORK_RANKED\020Q\022)\n%CHAT_MESSAG" +
      "E_CAN_QUIT_WITHOUT_ABANDON\020R\022:\n6CHAT_MES" +
      "SAGE_RANKED_GAME_STILL_SCORED_LEAVERS_GE" +
      "T_LOSS\020S\0228\n4CHAT_MESSAGE_ABANDON_RANKED_" +
      "BEFORE_FIRST_BLOOD_PARTY\020T\022!\n\035CHAT_MESSA" +
      "GE_COMPENDIUM_LEVEL\020U\022*\n&CHAT_MESSAGE_VI" +
      "CTORY_PREDICTION_STREAK\020V\022\"\n\036CHAT_MESSAG",
      "E_ASSASSIN_ANNOUNCE\020W\022!\n\035CHAT_MESSAGE_AS" +
      "SASSIN_SUCCESS\020X\022 \n\034CHAT_MESSAGE_ASSASSI" +
      "N_DENIED\020Y\0227\n3CHAT_MESSAGE_VICTORY_PREDI" +
      "CTION_SINGLE_USER_CONFIRM\020Z\022\034\n\030CHAT_MESS" +
      "AGE_EFFIGY_KILL\020[\022+\n\'CHAT_MESSAGE_VOICE_" +
      "TEXT_BANNED_OVERFLOW\020\\\022\"\n\036CHAT_MESSAGE_Y" +
      "EAR_BEAST_KILLED\020]\022 \n\034CHAT_MESSAGE_PAUSE" +
      "_COUNTDOWN\020^\022\036\n\032CHAT_MESSAGE_COINS_WAGER" +
      "ED\020_\022#\n\037CHAT_MESSAGE_HERO_NOMINATED_BAN\020" +
      "`\022\034\n\030CHAT_MESSAGE_HERO_BANNED\020a\022\037\n\033CHAT_",
      "MESSAGE_HERO_BAN_COUNT\020b\022\036\n\032CHAT_MESSAGE" +
      "_RIVER_PAINTED\020c\022\032\n\026CHAT_MESSAGE_SCAN_US" +
      "ED\020d\022\036\n\032CHAT_MESSAGE_SHRINE_KILLED\020e\022\"\n\036" +
      "CHAT_MESSAGE_WAGER_TOKEN_SPENT\020f\022\033\n\027CHAT" +
      "_MESSAGE_RANK_WAGER\020g\022$\n CHAT_MESSAGE_NE" +
      "W_PLAYER_REMINDER\020h\022%\n!CHAT_MESSAGE_OBSE" +
      "RVER_WARD_KILLED\020i\022#\n\037CHAT_MESSAGE_SENTR" +
      "Y_WARD_KILLED\020j\022-\n)CHAT_MESSAGE_ITEM_PLA" +
      "CED_IN_NEUTRAL_STASH\020k\022$\n CHAT_MESSAGE_H" +
      "ERO_CHOICE_INVALID\020l\022\027\n\023CHAT_MESSAGE_BOU",
      "NTY\020m\022$\n CHAT_MESSAGE_ABILITY_DRAFT_STAR" +
      "T\020n\022!\n\035CHAT_MESSAGE_HERO_FOUND_CANDY\020o\022\'" +
      "\n#CHAT_MESSAGE_ABILITY_DRAFT_RANDOMED\020p\022" +
      "(\n$CHAT_MESSAGE_PRIVATE_COACH_CONNECTED\020" +
      "q*\262\001\n\035DOTA_NO_BATTLE_POINTS_REASONS\022%\n!N" +
      "O_BATTLE_POINTS_WRONG_LOBBY_TYPE\020\001\022\"\n\036NO" +
      "_BATTLE_POINTS_PRACTICE_BOTS\020\002\022#\n\037NO_BAT" +
      "TLE_POINTS_CHEATS_ENABLED\020\003\022!\n\035NO_BATTLE" +
      "_POINTS_LOW_PRIORITY\020\004*\214\002\n\027DOTA_REPLAY_S" +
      "TATE_EVENT\022&\n\"DOTA_REPLAY_STATE_EVENT_GA",
      "ME_START\020\001\022)\n%DOTA_REPLAY_STATE_EVENT_ST" +
      "ARTING_HORN\020\002\022\'\n#DOTA_REPLAY_STATE_EVENT" +
      "_FIRST_BLOOD\020\003\022$\n DOTA_REPLAY_STATE_EVEN" +
      "T_SHOWCASE\020\004\022%\n!DOTA_REPLAY_STATE_EVENT_" +
      "POST_GAME\020\005\022(\n$DOTA_REPLAY_STATE_EVENT_W" +
      "AIT_FOR_MAP\020\006*\317\001\n\027DOTA_CHAT_INFORMATIONA" +
      "L\022!\n\035INFO_COOP_BATTLE_POINTS_RULES\020\001\022#\n\037" +
      "INFO_FROSTIVUS_ABANDON_REMINDER\020\002\022\030\n\024INF" +
      "O_RANKED_REMINDER\020\003\022+\n\'INFO_COOP_LOW_PRI" +
      "ORITY_PASSIVE_REMINDER\020\004\022%\n!INFO_CUSTOM_",
      "GAME_PENALTY_REMINDER\020\005*\274\003\n\026DOTA_ABILITY" +
      "_PING_TYPE\022\026\n\022ABILITY_PING_READY\020\001\022\025\n\021AB" +
      "ILITY_PING_MANA\020\002\022\031\n\025ABILITY_PING_COOLDO" +
      "WN\020\003\022\026\n\022ABILITY_PING_ENEMY\020\004\022\032\n\026ABILITY_" +
      "PING_UNLEARNED\020\005\022\033\n\027ABILITY_PING_INBACKP" +
      "ACK\020\006\022\030\n\024ABILITY_PING_INSTASH\020\007\022\032\n\026ABILI" +
      "TY_PING_ONCOURIER\020\010\022\025\n\021ABILITY_PING_ALLY" +
      "\020\t\022\034\n\030ABILITY_PING_LEARN_READY\020\n\022\033\n\027ABIL" +
      "ITY_PING_WILL_LEARN\020\013\022\035\n\031ABILITY_PING_FU" +
      "TURE_LEARN\020\014\022\036\n\032ABILITY_PING_NEUTRAL_OFF",
      "ER\020\r\022 \n\034ABILITY_PING_NEUTRAL_REQUEST\020\016\022\036" +
      "\n\032ABILITY_PING_NEUTRAL_EQUIP\020\017*\345\001\n\023EDota" +
      "EntityMessages\022\024\n\020DOTA_UNIT_SPEECH\020\000\022\031\n\025" +
      "DOTA_UNIT_SPEECH_MUTE\020\001\022\031\n\025DOTA_UNIT_ADD" +
      "_GESTURE\020\002\022\034\n\030DOTA_UNIT_REMOVE_GESTURE\020\003" +
      "\022!\n\035DOTA_UNIT_REMOVE_ALL_GESTURES\020\004\022\032\n\026D" +
      "OTA_UNIT_FADE_GESTURE\020\006\022%\n!DOTA_UNIT_SPE" +
      "ECH_CLIENTSIDE_RULES\020\007*\223\t\n\025DOTA_PARTICLE" +
      "_MESSAGE\022&\n\"DOTA_PARTICLE_MANAGER_EVENT_" +
      "CREATE\020\000\022&\n\"DOTA_PARTICLE_MANAGER_EVENT_",
      "UPDATE\020\001\022.\n*DOTA_PARTICLE_MANAGER_EVENT_" +
      "UPDATE_FORWARD\020\002\0222\n.DOTA_PARTICLE_MANAGE" +
      "R_EVENT_UPDATE_ORIENTATION\020\003\022/\n+DOTA_PAR" +
      "TICLE_MANAGER_EVENT_UPDATE_FALLBACK\020\004\022*\n" +
      "&DOTA_PARTICLE_MANAGER_EVENT_UPDATE_ENT\020" +
      "\005\022-\n)DOTA_PARTICLE_MANAGER_EVENT_UPDATE_" +
      "OFFSET\020\006\022\'\n#DOTA_PARTICLE_MANAGER_EVENT_" +
      "DESTROY\020\007\0221\n-DOTA_PARTICLE_MANAGER_EVENT" +
      "_DESTROY_INVOLVING\020\010\022\'\n#DOTA_PARTICLE_MA" +
      "NAGER_EVENT_RELEASE\020\t\022\'\n#DOTA_PARTICLE_M",
      "ANAGER_EVENT_LATENCY\020\n\022+\n\'DOTA_PARTICLE_" +
      "MANAGER_EVENT_SHOULD_DRAW\020\013\022&\n\"DOTA_PART" +
      "ICLE_MANAGER_EVENT_FROZEN\020\014\022?\n;DOTA_PART" +
      "ICLE_MANAGER_EVENT_CHANGE_CONTROL_POINT_" +
      "ATTACHMENT\020\r\0226\n2DOTA_PARTICLE_MANAGER_EV" +
      "ENT_UPDATE_ENTITY_POSITION\020\016\0222\n.DOTA_PAR" +
      "TICLE_MANAGER_EVENT_SET_FOW_PROPERTIES\020\017" +
      "\022(\n$DOTA_PARTICLE_MANAGER_EVENT_SET_TEXT" +
      "\020\020\0224\n0DOTA_PARTICLE_MANAGER_EVENT_SET_SH" +
      "OULD_CHECK_FOW\020\021\0227\n3DOTA_PARTICLE_MANAGE",
      "R_EVENT_SET_CONTROL_POINT_MODEL\020\022\022:\n6DOT" +
      "A_PARTICLE_MANAGER_EVENT_SET_CONTROL_POI" +
      "NT_SNAPSHOT\020\023\0225\n1DOTA_PARTICLE_MANAGER_E" +
      "VENT_SET_TEXTURE_ATTRIBUTE\020\024\022=\n9DOTA_PAR" +
      "TICLE_MANAGER_EVENT_SET_SCENE_OBJECT_GEN" +
      "ERIC_FLAG\020\025\022?\n;DOTA_PARTICLE_MANAGER_EVE" +
      "NT_SET_SCENE_OBJECT_TINT_AND_DESAT\020\026*\215\006\n" +
      "\023DOTA_OVERHEAD_ALERT\022\027\n\023OVERHEAD_ALERT_G" +
      "OLD\020\000\022\027\n\023OVERHEAD_ALERT_DENY\020\001\022\033\n\027OVERHE" +
      "AD_ALERT_CRITICAL\020\002\022\025\n\021OVERHEAD_ALERT_XP",
      "\020\003\022%\n!OVERHEAD_ALERT_BONUS_SPELL_DAMAGE\020" +
      "\004\022\027\n\023OVERHEAD_ALERT_MISS\020\005\022\031\n\025OVERHEAD_A" +
      "LERT_DAMAGE\020\006\022\030\n\024OVERHEAD_ALERT_EVADE\020\007\022" +
      "\030\n\024OVERHEAD_ALERT_BLOCK\020\010\022&\n\"OVERHEAD_AL" +
      "ERT_BONUS_POISON_DAMAGE\020\t\022\027\n\023OVERHEAD_AL" +
      "ERT_HEAL\020\n\022\033\n\027OVERHEAD_ALERT_MANA_ADD\020\013\022" +
      "\034\n\030OVERHEAD_ALERT_MANA_LOSS\020\014\022!\n\035OVERHEA" +
      "D_ALERT_LAST_HIT_EARLY\020\r\022!\n\035OVERHEAD_ALE" +
      "RT_LAST_HIT_CLOSE\020\016\022 \n\034OVERHEAD_ALERT_LA" +
      "ST_HIT_MISS\020\017\022 \n\034OVERHEAD_ALERT_MAGICAL_",
      "BLOCK\020\020\022\"\n\036OVERHEAD_ALERT_INCOMING_DAMAG" +
      "E\020\021\022\"\n\036OVERHEAD_ALERT_OUTGOING_DAMAGE\020\022\022" +
      "!\n\035OVERHEAD_ALERT_DISABLE_RESIST\020\023\022\030\n\024OV" +
      "ERHEAD_ALERT_DEATH\020\024\022\032\n\026OVERHEAD_ALERT_B" +
      "LOCKED\020\025\022 \n\034OVERHEAD_ALERT_ITEM_RECEIVED" +
      "\020\026\022\030\n\024OVERHEAD_ALERT_SHARD\020\027\022\036\n\032OVERHEAD" +
      "_ALERT_DEADLY_BLOW\020\030*k\n\021DOTA_ROSHAN_PHAS" +
      "E\022\027\n\023k_SRSP_ROSHAN_ALIVE\020\000\022\034\n\030k_SRSP_ROS" +
      "HAN_BASE_TIMER\020\001\022\037\n\033k_SRSP_ROSHAN_VISIBL" +
      "E_TIMER\020\002*\201\004\n\026DOTA_POSITION_CATEGORY\022\026\n\022",
      "DOTA_POSITION_NONE\020\000\022\035\n\031DOTA_POSITION_BO" +
      "TTOM_LANE\020\001\022\032\n\026DOTA_POSITION_MID_LANE\020\002\022" +
      "\032\n\026DOTA_POSITION_TOP_LANE\020\003\022 \n\034DOTA_POSI" +
      "TION_RADIANT_JUNGLE\020\004\022\035\n\031DOTA_POSITION_D" +
      "IRE_JUNGLE\020\005\022\"\n\036DOTA_POSITION_RADIANT_AN" +
      "CIENTS\020\006\022\037\n\033DOTA_POSITION_DIRE_ANCIENTS\020" +
      "\007\022%\n!DOTA_POSITION_RADIANT_SECRET_SHOP\020\010" +
      "\022\"\n\036DOTA_POSITION_DIRE_SECRET_SHOP\020\t\022\027\n\023" +
      "DOTA_POSITION_RIVER\020\n\022\034\n\030DOTA_POSITION_R" +
      "OSHAN_PIT\020\013\022\036\n\032DOTA_POSITION_RADIANT_BAS",
      "E\020\014\022\033\n\027DOTA_POSITION_DIRE_BASE\020\r\022\032\n\026DOTA" +
      "_POSITION_FOUNTAIN\020\016\022\027\n\023DOTA_POSITION_OT" +
      "HER\020\017*\346\001\n\030DOTA_ABILITY_TARGET_TYPE\022\034\n\030DO" +
      "TA_ABILITY_TARGET_NONE\020\000\022\034\n\030DOTA_ABILITY" +
      "_TARGET_SELF\020\001\022!\n\035DOTA_ABILITY_TARGET_AL" +
      "LY_HERO\020\002\022\"\n\036DOTA_ABILITY_TARGET_ALLY_CR" +
      "EEP\020\003\022\"\n\036DOTA_ABILITY_TARGET_ENEMY_HERO\020" +
      "\004\022#\n\037DOTA_ABILITY_TARGET_ENEMY_CREEP\020\005*\230" +
      "\010\n\rEHeroStatType\022\030\n\024k_EHeroStatType_None" +
      "\020\000\022#\n\036k_EHeroStatType_AxeTotalDamage\020\320\017\022",
      "\'\n\"k_EHeroStatType_BattleHungerDamage\020\321\017" +
      "\022\'\n\"k_EHeroStatType_CounterHelixDamage\020\322" +
      "\017\022\'\n\"k_EHeroStatType_CullingBladeDamage\020" +
      "\323\017\022,\n\'k_EHeroStatType_BerserkersCallCast" +
      "Count\020\324\017\0223\n.k_EHeroStatType_BerserkersCa" +
      "llHeroesHitAverage\020\325\017\0220\n+k_EHeroStatType" +
      "_BerserkersCallOtherUnitsHit\020\326\017\0223\n.k_EHe" +
      "roStatType_BerserkersCallHeroAttacksTake" +
      "n\020\327\017\0224\n/k_EHeroStatType_BerserkersCallOt" +
      "herAttacksTaken\020\330\017\022*\n%k_EHeroStatType_Ba",
      "ttleHungerCastCount\020\331\017\0222\n-k_EHeroStatTyp" +
      "e_BattleHungerPotentialDuration\020\332\017\0220\n+k_" +
      "EHeroStatType_BattleHungerAverageDuratio" +
      "n\020\333\017\022*\n%k_EHeroStatType_CounterHelixProc" +
      "Count\020\334\017\022.\n)k_EHeroStatType_CounterHelix" +
      "HeroProcCount\020\335\017\0221\n,k_EHeroStatType_Coun" +
      "terHelixHeroesHitAverage\020\336\017\0223\n.k_EHeroSt" +
      "atType_CounterHelixOtherUnitsHitCount\020\337\017" +
      "\022*\n%k_EHeroStatType_CullingBladeCastCoun" +
      "t\020\340\017\022*\n%k_EHeroStatType_CullingBladeKill",
      "Count\020\341\017\0224\n/k_EHeroStatType_CullingBlade" +
      "AverageHealthCulled\020\342\017\0227\n2k_EHeroStatTyp" +
      "e_CullingBladeAverageDamageAvailable\020\343\017\022" +
      "0\n+k_EHeroStatType_CullingBladeHeroBuffA" +
      "verage\020\344\017*\344\004\n\027EPlayerVoiceListenState\022\016\n" +
      "\nkPVLS_None\020\000\022\032\n\026kPVLS_DeniedChatBanned\020" +
      "\001\022\027\n\023kPVLS_DeniedPartner\020\002\022&\n\"kPVLS_Deni" +
      "edHLTVTalkerNotSpectator\020\003\022$\n kPVLS_Deni" +
      "edHLTVNoTalkerPlayerID\020\004\022(\n$kPVLS_Denied" +
      "HLTVTalkerNotBroadcaster\020\005\022\035\n\031kPVLS_Deni",
      "edTeamSpectator\020\006\022\027\n\023kPVLS_DeniedStudent" +
      "\020\010\022\034\n\030kPVLS_DeniedPrivateCoach\020\t\022\020\n\014kPVL" +
      "S_Denied\020@\022&\n\"kPVLS_AllowHLTVTalkerIsBro" +
      "adcaster\020A\022\034\n\030kPVLS_AllowCoBroadcaster\020B" +
      "\022\026\n\022kPVLS_AllowAllChat\020C\022\035\n\031kPVLS_AllowS" +
      "tudentToCoach\020D\022\034\n\030kPVLS_AllowFellowStud" +
      "ent\020E\022\034\n\030kPVLS_AllowTalkerIsCoach\020F\022\034\n\030k" +
      "PVLS_AllowCoachHearTeam\020G\022\027\n\023kPVLS_Allow" +
      "SameTeam\020H\022\027\n\023kPVLS_AllowShowcase\020I\022\033\n\027k" +
      "PVLS_AllowPrivateCoach\020J*B\n\020EProjectionE",
      "vent\022\022\n\016ePE_FirstBlood\020\000\022\032\n\026ePE_Killstre" +
      "ak_godlike\020\001B=\n$skadistats.clarity.wire." +
      "common.protoB\020DotaUserMessagesH\001\200\001\000"
    };
    com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
        new com.google.protobuf.Descriptors.FileDescriptor.    InternalDescriptorAssigner() {
          public com.google.protobuf.ExtensionRegistry assignDescriptors(
              com.google.protobuf.Descriptors.FileDescriptor root) {
            descriptor = root;
            return null;
          }
        };
    com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
          skadistats.clarity.wire.common.proto.NetworkBaseTypes.getDescriptor(),
          skadistats.clarity.wire.common.proto.DotaCommonMessages.getDescriptor(),
        }, assigner);
    internal_static_CDOTAUserMsg_ChatEvent_descriptor =
      getDescriptor().getMessageTypes().get(0);
    internal_static_CDOTAUserMsg_ChatEvent_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_ChatEvent_descriptor,
        new java.lang.String[] { "Type", "Value", "Playerid1", "Playerid2", "Playerid3", "Playerid4", "Playerid5", "Playerid6", "Value2", "Value3", });
    internal_static_CDOTAUserMsg_BotChat_descriptor =
      getDescriptor().getMessageTypes().get(1);
    internal_static_CDOTAUserMsg_BotChat_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_BotChat_descriptor,
        new java.lang.String[] { "PlayerId", "Format", "Message", "Target", "TeamOnly", });
    internal_static_CDOTAUserMsg_CombatLogBulkData_descriptor =
      getDescriptor().getMessageTypes().get(2);
    internal_static_CDOTAUserMsg_CombatLogBulkData_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_CombatLogBulkData_descriptor,
        new java.lang.String[] { "CombatEntries", "Timestamp", "Duration", "PlayerId", });
    internal_static_CDOTAUserMsg_MiniKillCamInfo_descriptor =
      getDescriptor().getMessageTypes().get(3);
    internal_static_CDOTAUserMsg_MiniKillCamInfo_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_MiniKillCamInfo_descriptor,
        new java.lang.String[] { "Attackers", });
    internal_static_CDOTAUserMsg_MiniKillCamInfo_Attacker_descriptor =
      internal_static_CDOTAUserMsg_MiniKillCamInfo_descriptor.getNestedTypes().get(0);
    internal_static_CDOTAUserMsg_MiniKillCamInfo_Attacker_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_MiniKillCamInfo_Attacker_descriptor,
        new java.lang.String[] { "Attacker", "TotalDamage", "Abilities", "AttackerName", });
    internal_static_CDOTAUserMsg_MiniKillCamInfo_Attacker_Ability_descriptor =
      internal_static_CDOTAUserMsg_MiniKillCamInfo_Attacker_descriptor.getNestedTypes().get(0);
    internal_static_CDOTAUserMsg_MiniKillCamInfo_Attacker_Ability_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_MiniKillCamInfo_Attacker_Ability_descriptor,
        new java.lang.String[] { "AbilityId", "Damage", });
    internal_static_CDOTAUserMsg_GlobalLightColor_descriptor =
      getDescriptor().getMessageTypes().get(4);
    internal_static_CDOTAUserMsg_GlobalLightColor_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_GlobalLightColor_descriptor,
        new java.lang.String[] { "Color", "Duration", });
    internal_static_CDOTAUserMsg_GlobalLightDirection_descriptor =
      getDescriptor().getMessageTypes().get(5);
    internal_static_CDOTAUserMsg_GlobalLightDirection_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_GlobalLightDirection_descriptor,
        new java.lang.String[] { "Direction", "Duration", });
    internal_static_CDOTAUserMsg_LocationPing_descriptor =
      getDescriptor().getMessageTypes().get(6);
    internal_static_CDOTAUserMsg_LocationPing_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_LocationPing_descriptor,
        new java.lang.String[] { "PlayerId", "LocationPing", });
    internal_static_CDOTAUserMsg_PingConfirmation_descriptor =
      getDescriptor().getMessageTypes().get(7);
    internal_static_CDOTAUserMsg_PingConfirmation_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_PingConfirmation_descriptor,
        new java.lang.String[] { "PlayerIdOfOriginalPinger", "EntityIndex", "IconType", "Location", });
    internal_static_CDOTAUserMsg_EnemyItemAlert_descriptor =
      getDescriptor().getMessageTypes().get(8);
    internal_static_CDOTAUserMsg_EnemyItemAlert_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_EnemyItemAlert_descriptor,
        new java.lang.String[] { "PlayerId", "TargetPlayerId", "ItemAbilityId", "RuneType", "EntityId", "ItemLevel", "PrimaryCharges", "SecondaryCharges", });
    internal_static_CDOTAUserMsg_ModifierAlert_descriptor =
      getDescriptor().getMessageTypes().get(9);
    internal_static_CDOTAUserMsg_ModifierAlert_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_ModifierAlert_descriptor,
        new java.lang.String[] { "PlayerId", "ClassName", "StackCount", "IsDebuff", "TargetEntindex", "SecondsRemaining", });
    internal_static_CDOTAUserMsg_HPManaAlert_descriptor =
      getDescriptor().getMessageTypes().get(10);
    internal_static_CDOTAUserMsg_HPManaAlert_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_HPManaAlert_descriptor,
        new java.lang.String[] { "PlayerId", "TargetEntindex", "ShowRawValues", });
    internal_static_CDOTAUserMsg_GlyphAlert_descriptor =
      getDescriptor().getMessageTypes().get(11);
    internal_static_CDOTAUserMsg_GlyphAlert_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_GlyphAlert_descriptor,
        new java.lang.String[] { "PlayerId", "Negative", });
    internal_static_CDOTAUserMsg_RadarAlert_descriptor =
      getDescriptor().getMessageTypes().get(12);
    internal_static_CDOTAUserMsg_RadarAlert_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_RadarAlert_descriptor,
        new java.lang.String[] { "PlayerId", "Negative", });
    internal_static_CDOTAUserMsg_WillPurchaseAlert_descriptor =
      getDescriptor().getMessageTypes().get(13);
    internal_static_CDOTAUserMsg_WillPurchaseAlert_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_WillPurchaseAlert_descriptor,
        new java.lang.String[] { "ItemAbilityId", "PlayerId", "GoldRemaining", "SuggestionPlayerId", });
    internal_static_CDOTAUserMsg_EmptyTeleportAlert_descriptor =
      getDescriptor().getMessageTypes().get(14);
    internal_static_CDOTAUserMsg_EmptyTeleportAlert_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_EmptyTeleportAlert_descriptor,
        new java.lang.String[] { "SourcePlayerId", "TargetPlayerId", "CooldownSeconds", });
    internal_static_CDOTAUserMsg_MarsArenaOfBloodAttack_descriptor =
      getDescriptor().getMessageTypes().get(15);
    internal_static_CDOTAUserMsg_MarsArenaOfBloodAttack_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_MarsArenaOfBloodAttack_descriptor,
        new java.lang.String[] { "SourceEhandle", "TargetEhandle", "WarriorIndex", });
    internal_static_CDOTAEntityMsg_InvokerSpellCast_descriptor =
      getDescriptor().getMessageTypes().get(16);
    internal_static_CDOTAEntityMsg_InvokerSpellCast_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAEntityMsg_InvokerSpellCast_descriptor,
        new java.lang.String[] { "EntityMsg", "CastActivity", });
    internal_static_CDOTAUserMsg_QuickBuyAlert_descriptor =
      getDescriptor().getMessageTypes().get(17);
    internal_static_CDOTAUserMsg_QuickBuyAlert_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_QuickBuyAlert_descriptor,
        new java.lang.String[] { "PlayerId", "ItemAbilityId", "GoldCost", "ItemCooldownSeconds", "ShowBuyback", });
    internal_static_CDOTAUserMsg_CourierKilledAlert_descriptor =
      getDescriptor().getMessageTypes().get(18);
    internal_static_CDOTAUserMsg_CourierKilledAlert_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_CourierKilledAlert_descriptor,
        new java.lang.String[] { "Team", "GoldValue", "EntityHandle", "Timestamp", "LostItems", "KillerPlayerId", "OwningPlayerId", });
    internal_static_CDOTAUserMsg_CourierKilledAlert_LostItem_descriptor =
      internal_static_CDOTAUserMsg_CourierKilledAlert_descriptor.getNestedTypes().get(0);
    internal_static_CDOTAUserMsg_CourierKilledAlert_LostItem_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_CourierKilledAlert_LostItem_descriptor,
        new java.lang.String[] { "ItemAbilityId", "Quantity", });
    internal_static_CDOTAUserMsg_MinimapEvent_descriptor =
      getDescriptor().getMessageTypes().get(19);
    internal_static_CDOTAUserMsg_MinimapEvent_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_MinimapEvent_descriptor,
        new java.lang.String[] { "EventType", "EntityHandle", "X", "Y", "Duration", "TargetEntityHandle", });
    internal_static_CDOTAUserMsg_MapLine_descriptor =
      getDescriptor().getMessageTypes().get(20);
    internal_static_CDOTAUserMsg_MapLine_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_MapLine_descriptor,
        new java.lang.String[] { "PlayerId", "Mapline", });
    internal_static_CDOTAUserMsg_CreateLinearProjectile_descriptor =
      getDescriptor().getMessageTypes().get(21);
    internal_static_CDOTAUserMsg_CreateLinearProjectile_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_CreateLinearProjectile_descriptor,
        new java.lang.String[] { "Origin", "Velocity", "Latency", "Entindex", "ParticleIndex", "Handle", "Acceleration", "MaxSpeed", "FowRadius", "StickyFowReveal", "Distance", "Colorgemcolor", });
    internal_static_CDOTAUserMsg_DestroyLinearProjectile_descriptor =
      getDescriptor().getMessageTypes().get(22);
    internal_static_CDOTAUserMsg_DestroyLinearProjectile_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_DestroyLinearProjectile_descriptor,
        new java.lang.String[] { "Handle", });
    internal_static_CDOTAUserMsg_DodgeTrackingProjectiles_descriptor =
      getDescriptor().getMessageTypes().get(23);
    internal_static_CDOTAUserMsg_DodgeTrackingProjectiles_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_DodgeTrackingProjectiles_descriptor,
        new java.lang.String[] { "Entindex", "AttacksOnly", });
    internal_static_CDOTAUserMsg_SpectatorPlayerClick_descriptor =
      getDescriptor().getMessageTypes().get(24);
    internal_static_CDOTAUserMsg_SpectatorPlayerClick_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_SpectatorPlayerClick_descriptor,
        new java.lang.String[] { "Entindex", "OrderType", "TargetIndex", });
    internal_static_CDOTAUserMsg_SpectatorPlayerUnitOrders_descriptor =
      getDescriptor().getMessageTypes().get(25);
    internal_static_CDOTAUserMsg_SpectatorPlayerUnitOrders_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_SpectatorPlayerUnitOrders_descriptor,
        new java.lang.String[] { "Entindex", "OrderType", "Units", "TargetIndex", "AbilityId", "Position", "Queue", "SequenceNumber", "Flags", });
    internal_static_CDOTAUserMsg_NevermoreRequiem_descriptor =
      getDescriptor().getMessageTypes().get(26);
    internal_static_CDOTAUserMsg_NevermoreRequiem_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_NevermoreRequiem_descriptor,
        new java.lang.String[] { "EntityHandle", "Lines", "Origin", "Reverse", });
    internal_static_CDOTAUserMsg_HudError_descriptor =
      getDescriptor().getMessageTypes().get(27);
    internal_static_CDOTAUserMsg_HudError_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_HudError_descriptor,
        new java.lang.String[] { "OrderId", });
    internal_static_CDOTAUserMsg_SharedCooldown_descriptor =
      getDescriptor().getMessageTypes().get(28);
    internal_static_CDOTAUserMsg_SharedCooldown_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_SharedCooldown_descriptor,
        new java.lang.String[] { "Entindex", "Name", "Cooldown", "NameIndex", });
    internal_static_CDOTAUserMsg_HalloweenDrops_descriptor =
      getDescriptor().getMessageTypes().get(29);
    internal_static_CDOTAUserMsg_HalloweenDrops_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_HalloweenDrops_descriptor,
        new java.lang.String[] { "ItemDefs", "PlayerIds", "PrizeList", });
    internal_static_CDOTAUserMsg_PredictionResult_descriptor =
      getDescriptor().getMessageTypes().get(30);
    internal_static_CDOTAUserMsg_PredictionResult_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_PredictionResult_descriptor,
        new java.lang.String[] { "AccountId", "MatchId", "Correct", "Predictions", });
    internal_static_CDOTAUserMsg_PredictionResult_Prediction_descriptor =
      internal_static_CDOTAUserMsg_PredictionResult_descriptor.getNestedTypes().get(0);
    internal_static_CDOTAUserMsg_PredictionResult_Prediction_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_PredictionResult_Prediction_descriptor,
        new java.lang.String[] { "ItemDef", "NumCorrect", "NumFails", "Result", "GrantedItemDefs", });
    internal_static_CDOTAResponseQuerySerialized_descriptor =
      getDescriptor().getMessageTypes().get(31);
    internal_static_CDOTAResponseQuerySerialized_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAResponseQuerySerialized_descriptor,
        new java.lang.String[] { "Facts", });
    internal_static_CDOTAResponseQuerySerialized_Fact_descriptor =
      internal_static_CDOTAResponseQuerySerialized_descriptor.getNestedTypes().get(0);
    internal_static_CDOTAResponseQuerySerialized_Fact_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAResponseQuerySerialized_Fact_descriptor,
        new java.lang.String[] { "Key", "Valtype", "ValNumeric", "ValString", });
    internal_static_CDOTASpeechMatchOnClient_descriptor =
      getDescriptor().getMessageTypes().get(32);
    internal_static_CDOTASpeechMatchOnClient_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTASpeechMatchOnClient_descriptor,
        new java.lang.String[] { "Concept", "RecipientType", "Responsequery", "Randomseed", });
    internal_static_CDOTAUserMsg_UnitEvent_descriptor =
      getDescriptor().getMessageTypes().get(33);
    internal_static_CDOTAUserMsg_UnitEvent_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_UnitEvent_descriptor,
        new java.lang.String[] { "MsgType", "EntityIndex", "Speech", "SpeechMute", "AddGesture", "RemoveGesture", "BloodImpact", "FadeGesture", "SpeechMatchOnClient", });
    internal_static_CDOTAUserMsg_UnitEvent_Interval_descriptor =
      internal_static_CDOTAUserMsg_UnitEvent_descriptor.getNestedTypes().get(0);
    internal_static_CDOTAUserMsg_UnitEvent_Interval_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_UnitEvent_Interval_descriptor,
        new java.lang.String[] { "Start", "Range", });
    internal_static_CDOTAUserMsg_UnitEvent_Speech_descriptor =
      internal_static_CDOTAUserMsg_UnitEvent_descriptor.getNestedTypes().get(1);
    internal_static_CDOTAUserMsg_UnitEvent_Speech_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_UnitEvent_Speech_descriptor,
        new java.lang.String[] { "Concept", "Response", "RecipientType", "Level", "Muteable", "Predelay", "Flags", });
    internal_static_CDOTAUserMsg_UnitEvent_SpeechMute_descriptor =
      internal_static_CDOTAUserMsg_UnitEvent_descriptor.getNestedTypes().get(2);
    internal_static_CDOTAUserMsg_UnitEvent_SpeechMute_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_UnitEvent_SpeechMute_descriptor,
        new java.lang.String[] { "Delay", });
    internal_static_CDOTAUserMsg_UnitEvent_AddGesture_descriptor =
      internal_static_CDOTAUserMsg_UnitEvent_descriptor.getNestedTypes().get(3);
    internal_static_CDOTAUserMsg_UnitEvent_AddGesture_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_UnitEvent_AddGesture_descriptor,
        new java.lang.String[] { "Activity", "Slot", "FadeIn", "FadeOut", "PlaybackRate", "SequenceVariant", });
    internal_static_CDOTAUserMsg_UnitEvent_RemoveGesture_descriptor =
      internal_static_CDOTAUserMsg_UnitEvent_descriptor.getNestedTypes().get(4);
    internal_static_CDOTAUserMsg_UnitEvent_RemoveGesture_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_UnitEvent_RemoveGesture_descriptor,
        new java.lang.String[] { "Activity", });
    internal_static_CDOTAUserMsg_UnitEvent_BloodImpact_descriptor =
      internal_static_CDOTAUserMsg_UnitEvent_descriptor.getNestedTypes().get(5);
    internal_static_CDOTAUserMsg_UnitEvent_BloodImpact_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_UnitEvent_BloodImpact_descriptor,
        new java.lang.String[] { "Scale", "XNormal", "YNormal", });
    internal_static_CDOTAUserMsg_UnitEvent_FadeGesture_descriptor =
      internal_static_CDOTAUserMsg_UnitEvent_descriptor.getNestedTypes().get(6);
    internal_static_CDOTAUserMsg_UnitEvent_FadeGesture_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_UnitEvent_FadeGesture_descriptor,
        new java.lang.String[] { "Activity", });
    internal_static_CDOTAUserMsg_ItemPurchased_descriptor =
      getDescriptor().getMessageTypes().get(34);
    internal_static_CDOTAUserMsg_ItemPurchased_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_ItemPurchased_descriptor,
        new java.lang.String[] { "ItemAbilityId", });
    internal_static_CDOTAUserMsg_ItemSold_descriptor =
      getDescriptor().getMessageTypes().get(35);
    internal_static_CDOTAUserMsg_ItemSold_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_ItemSold_descriptor,
        new java.lang.String[] { "ItemAbilityId", });
    internal_static_CDOTAUserMsg_ParticleManager_descriptor =
      getDescriptor().getMessageTypes().get(36);
    internal_static_CDOTAUserMsg_ParticleManager_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_ParticleManager_descriptor,
        new java.lang.String[] { "Type", "Index", "ReleaseParticleIndex", "CreateParticle", "DestroyParticle", "DestroyParticleInvolving", "UpdateParticle", "UpdateParticleFwd", "UpdateParticleOrient", "UpdateParticleFallback", "UpdateParticleOffset", "UpdateParticleEnt", "UpdateParticleShouldDraw", "UpdateParticleSetFrozen", "ChangeControlPointAttachment", "UpdateEntityPosition", "SetParticleFowProperties", "SetParticleText", "SetParticleShouldCheckFow", "SetControlPointModel", "SetControlPointSnapshot", "SetTextureAttribute", "SetSceneObjectGenericFlag", "SetSceneObjectTintAndDesat", });
    internal_static_CDOTAUserMsg_ParticleManager_ReleaseParticleIndex_descriptor =
      internal_static_CDOTAUserMsg_ParticleManager_descriptor.getNestedTypes().get(0);
    internal_static_CDOTAUserMsg_ParticleManager_ReleaseParticleIndex_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_ParticleManager_ReleaseParticleIndex_descriptor,
        new java.lang.String[] { });
    internal_static_CDOTAUserMsg_ParticleManager_CreateParticle_descriptor =
      internal_static_CDOTAUserMsg_ParticleManager_descriptor.getNestedTypes().get(1);
    internal_static_CDOTAUserMsg_ParticleManager_CreateParticle_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_ParticleManager_CreateParticle_descriptor,
        new java.lang.String[] { "ParticleNameIndex", "AttachType", "EntityHandle", "EntityHandleForModifiers", "ApplyVoiceBanRules", "TeamBehavior", });
    internal_static_CDOTAUserMsg_ParticleManager_DestroyParticle_descriptor =
      internal_static_CDOTAUserMsg_ParticleManager_descriptor.getNestedTypes().get(2);
    internal_static_CDOTAUserMsg_ParticleManager_DestroyParticle_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_ParticleManager_DestroyParticle_descriptor,
        new java.lang.String[] { "DestroyImmediately", });
    internal_static_CDOTAUserMsg_ParticleManager_DestroyParticleInvolving_descriptor =
      internal_static_CDOTAUserMsg_ParticleManager_descriptor.getNestedTypes().get(3);
    internal_static_CDOTAUserMsg_ParticleManager_DestroyParticleInvolving_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_ParticleManager_DestroyParticleInvolving_descriptor,
        new java.lang.String[] { "DestroyImmediately", "EntityHandle", });
    internal_static_CDOTAUserMsg_ParticleManager_UpdateParticle_descriptor =
      internal_static_CDOTAUserMsg_ParticleManager_descriptor.getNestedTypes().get(4);
    internal_static_CDOTAUserMsg_ParticleManager_UpdateParticle_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_ParticleManager_UpdateParticle_descriptor,
        new java.lang.String[] { "ControlPoint", "Position", });
    internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleFwd_descriptor =
      internal_static_CDOTAUserMsg_ParticleManager_descriptor.getNestedTypes().get(5);
    internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleFwd_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleFwd_descriptor,
        new java.lang.String[] { "ControlPoint", "Forward", });
    internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleOrient_descriptor =
      internal_static_CDOTAUserMsg_ParticleManager_descriptor.getNestedTypes().get(6);
    internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleOrient_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleOrient_descriptor,
        new java.lang.String[] { "ControlPoint", "Forward", "Right", "Up", "Left", });
    internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleFallback_descriptor =
      internal_static_CDOTAUserMsg_ParticleManager_descriptor.getNestedTypes().get(7);
    internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleFallback_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleFallback_descriptor,
        new java.lang.String[] { "ControlPoint", "Position", });
    internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleOffset_descriptor =
      internal_static_CDOTAUserMsg_ParticleManager_descriptor.getNestedTypes().get(8);
    internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleOffset_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleOffset_descriptor,
        new java.lang.String[] { "ControlPoint", "OriginOffset", "AngleOffset", });
    internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleEnt_descriptor =
      internal_static_CDOTAUserMsg_ParticleManager_descriptor.getNestedTypes().get(9);
    internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleEnt_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleEnt_descriptor,
        new java.lang.String[] { "ControlPoint", "EntityHandle", "AttachType", "Attachment", "FallbackPosition", "IncludeWearables", });
    internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleSetFrozen_descriptor =
      internal_static_CDOTAUserMsg_ParticleManager_descriptor.getNestedTypes().get(10);
    internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleSetFrozen_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleSetFrozen_descriptor,
        new java.lang.String[] { "SetFrozen", });
    internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleShouldDraw_descriptor =
      internal_static_CDOTAUserMsg_ParticleManager_descriptor.getNestedTypes().get(11);
    internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleShouldDraw_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleShouldDraw_descriptor,
        new java.lang.String[] { "ShouldDraw", });
    internal_static_CDOTAUserMsg_ParticleManager_ChangeControlPointAttachment_descriptor =
      internal_static_CDOTAUserMsg_ParticleManager_descriptor.getNestedTypes().get(12);
    internal_static_CDOTAUserMsg_ParticleManager_ChangeControlPointAttachment_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_ParticleManager_ChangeControlPointAttachment_descriptor,
        new java.lang.String[] { "AttachmentOld", "AttachmentNew", "EntityHandle", });
    internal_static_CDOTAUserMsg_ParticleManager_UpdateEntityPosition_descriptor =
      internal_static_CDOTAUserMsg_ParticleManager_descriptor.getNestedTypes().get(13);
    internal_static_CDOTAUserMsg_ParticleManager_UpdateEntityPosition_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_ParticleManager_UpdateEntityPosition_descriptor,
        new java.lang.String[] { "EntityHandle", "Position", });
    internal_static_CDOTAUserMsg_ParticleManager_SetParticleFoWProperties_descriptor =
      internal_static_CDOTAUserMsg_ParticleManager_descriptor.getNestedTypes().get(14);
    internal_static_CDOTAUserMsg_ParticleManager_SetParticleFoWProperties_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_ParticleManager_SetParticleFoWProperties_descriptor,
        new java.lang.String[] { "FowControlPoint", "FowControlPoint2", "FowRadius", });
    internal_static_CDOTAUserMsg_ParticleManager_SetParticleShouldCheckFoW_descriptor =
      internal_static_CDOTAUserMsg_ParticleManager_descriptor.getNestedTypes().get(15);
    internal_static_CDOTAUserMsg_ParticleManager_SetParticleShouldCheckFoW_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_ParticleManager_SetParticleShouldCheckFoW_descriptor,
        new java.lang.String[] { "CheckFow", });
    internal_static_CDOTAUserMsg_ParticleManager_SetControlPointModel_descriptor =
      internal_static_CDOTAUserMsg_ParticleManager_descriptor.getNestedTypes().get(16);
    internal_static_CDOTAUserMsg_ParticleManager_SetControlPointModel_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_ParticleManager_SetControlPointModel_descriptor,
        new java.lang.String[] { "ControlPoint", "ModelName", });
    internal_static_CDOTAUserMsg_ParticleManager_SetControlPointSnapshot_descriptor =
      internal_static_CDOTAUserMsg_ParticleManager_descriptor.getNestedTypes().get(17);
    internal_static_CDOTAUserMsg_ParticleManager_SetControlPointSnapshot_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_ParticleManager_SetControlPointSnapshot_descriptor,
        new java.lang.String[] { "ControlPoint", "SnapshotName", });
    internal_static_CDOTAUserMsg_ParticleManager_SetParticleText_descriptor =
      internal_static_CDOTAUserMsg_ParticleManager_descriptor.getNestedTypes().get(18);
    internal_static_CDOTAUserMsg_ParticleManager_SetParticleText_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_ParticleManager_SetParticleText_descriptor,
        new java.lang.String[] { "Text", });
    internal_static_CDOTAUserMsg_ParticleManager_SetTextureAttribute_descriptor =
      internal_static_CDOTAUserMsg_ParticleManager_descriptor.getNestedTypes().get(19);
    internal_static_CDOTAUserMsg_ParticleManager_SetTextureAttribute_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_ParticleManager_SetTextureAttribute_descriptor,
        new java.lang.String[] { "AttributeName", "TextureName", });
    internal_static_CDOTAUserMsg_ParticleManager_SetSceneObjectGenericFlag_descriptor =
      internal_static_CDOTAUserMsg_ParticleManager_descriptor.getNestedTypes().get(20);
    internal_static_CDOTAUserMsg_ParticleManager_SetSceneObjectGenericFlag_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_ParticleManager_SetSceneObjectGenericFlag_descriptor,
        new java.lang.String[] { "FlagValue", });
    internal_static_CDOTAUserMsg_ParticleManager_SetSceneObjectTintAndDesat_descriptor =
      internal_static_CDOTAUserMsg_ParticleManager_descriptor.getNestedTypes().get(21);
    internal_static_CDOTAUserMsg_ParticleManager_SetSceneObjectTintAndDesat_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_ParticleManager_SetSceneObjectTintAndDesat_descriptor,
        new java.lang.String[] { "Tint", "Desat", });
    internal_static_CDOTAUserMsg_OverheadEvent_descriptor =
      getDescriptor().getMessageTypes().get(37);
    internal_static_CDOTAUserMsg_OverheadEvent_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_OverheadEvent_descriptor,
        new java.lang.String[] { "MessageType", "Value", "TargetPlayerEntindex", "TargetEntindex", "SourcePlayerEntindex", });
    internal_static_CDOTAUserMsg_WorldLine_descriptor =
      getDescriptor().getMessageTypes().get(38);
    internal_static_CDOTAUserMsg_WorldLine_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_WorldLine_descriptor,
        new java.lang.String[] { "PlayerId", "Worldline", });
    internal_static_CDOTAUserMsg_ChatWheel_descriptor =
      getDescriptor().getMessageTypes().get(39);
    internal_static_CDOTAUserMsg_ChatWheel_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_ChatWheel_descriptor,
        new java.lang.String[] { "ChatMessageId", "PlayerId", "AccountId", "ParamHeroId", "EmoticonId", });
    internal_static_CDOTAUserMsg_GamerulesStateChanged_descriptor =
      getDescriptor().getMessageTypes().get(40);
    internal_static_CDOTAUserMsg_GamerulesStateChanged_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_GamerulesStateChanged_descriptor,
        new java.lang.String[] { "State", });
    internal_static_CDOTAUserMsg_SendStatPopup_descriptor =
      getDescriptor().getMessageTypes().get(41);
    internal_static_CDOTAUserMsg_SendStatPopup_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_SendStatPopup_descriptor,
        new java.lang.String[] { "PlayerId", "Statpopup", });
    internal_static_CDOTAUserMsg_DismissAllStatPopups_descriptor =
      getDescriptor().getMessageTypes().get(42);
    internal_static_CDOTAUserMsg_DismissAllStatPopups_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_DismissAllStatPopups_descriptor,
        new java.lang.String[] { "Dismissallmsg", });
    internal_static_CDOTAUserMsg_SendRoshanSpectatorPhase_descriptor =
      getDescriptor().getMessageTypes().get(43);
    internal_static_CDOTAUserMsg_SendRoshanSpectatorPhase_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_SendRoshanSpectatorPhase_descriptor,
        new java.lang.String[] { "Phase", "PhaseStartTime", "PhaseLength", });
    internal_static_CDOTAUserMsg_SendRoshanPopup_descriptor =
      getDescriptor().getMessageTypes().get(44);
    internal_static_CDOTAUserMsg_SendRoshanPopup_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_SendRoshanPopup_descriptor,
        new java.lang.String[] { "Reclaimed", "Gametime", });
    internal_static_CDOTAUserMsg_TE_Projectile_descriptor =
      getDescriptor().getMessageTypes().get(45);
    internal_static_CDOTAUserMsg_TE_Projectile_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_TE_Projectile_descriptor,
        new java.lang.String[] { "HSource", "HTarget", "MoveSpeed", "SourceAttachment", "ParticleSystemHandle", "Dodgeable", "IsAttack", "IsEvaded", "ExpireTime", "Maximpacttime", "Colorgemcolor", "LaunchTick", "Handle", "VTargetLoc", });
    internal_static_CDOTAUserMsg_TE_ProjectileLoc_descriptor =
      getDescriptor().getMessageTypes().get(46);
    internal_static_CDOTAUserMsg_TE_ProjectileLoc_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_TE_ProjectileLoc_descriptor,
        new java.lang.String[] { "VSourceLoc", "HTarget", "MoveSpeed", "ParticleSystemHandle", "Dodgeable", "IsAttack", "IsEvaded", "ExpireTime", "VTargetLoc", "Colorgemcolor", "LaunchTick", "Handle", });
    internal_static_CDOTAUserMsg_TE_DestroyProjectile_descriptor =
      getDescriptor().getMessageTypes().get(47);
    internal_static_CDOTAUserMsg_TE_DestroyProjectile_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_TE_DestroyProjectile_descriptor,
        new java.lang.String[] { "Handle", });
    internal_static_CDOTAUserMsg_TE_DotaBloodImpact_descriptor =
      getDescriptor().getMessageTypes().get(48);
    internal_static_CDOTAUserMsg_TE_DotaBloodImpact_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_TE_DotaBloodImpact_descriptor,
        new java.lang.String[] { "Entity", "Scale", "Xnormal", "Ynormal", });
    internal_static_CDOTAUserMsg_AbilityPing_descriptor =
      getDescriptor().getMessageTypes().get(49);
    internal_static_CDOTAUserMsg_AbilityPing_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_AbilityPing_descriptor,
        new java.lang.String[] { "PlayerId", "AbilityId", "Type", "CooldownSeconds", "Level", "Passive", "ManaNeeded", "EntityId", "PrimaryCharges", "SecondaryCharges", "CasterId", "CtrlHeld", });
    internal_static_CDOTAUserMsg_TE_UnitAnimation_descriptor =
      getDescriptor().getMessageTypes().get(50);
    internal_static_CDOTAUserMsg_TE_UnitAnimation_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_TE_UnitAnimation_descriptor,
        new java.lang.String[] { "Entity", "SequenceVariant", "Playbackrate", "Castpoint", "Type", "Activity", });
    internal_static_CDOTAUserMsg_TE_UnitAnimationEnd_descriptor =
      getDescriptor().getMessageTypes().get(51);
    internal_static_CDOTAUserMsg_TE_UnitAnimationEnd_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_TE_UnitAnimationEnd_descriptor,
        new java.lang.String[] { "Entity", "Snap", });
    internal_static_CDOTAUserMsg_AbilitySteal_descriptor =
      getDescriptor().getMessageTypes().get(52);
    internal_static_CDOTAUserMsg_AbilitySteal_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_AbilitySteal_descriptor,
        new java.lang.String[] { "PlayerId", "AbilityId", "AbilityLevel", });
    internal_static_CDOTAUserMsg_StatsHeroLookup_descriptor =
      getDescriptor().getMessageTypes().get(53);
    internal_static_CDOTAUserMsg_StatsHeroLookup_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_StatsHeroLookup_descriptor,
        new java.lang.String[] { "PlayerId", "HeroId", "HeroName", "Persona", });
    internal_static_CDOTAUserMsg_StatsHeroPositionInfo_descriptor =
      getDescriptor().getMessageTypes().get(54);
    internal_static_CDOTAUserMsg_StatsHeroPositionInfo_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_StatsHeroPositionInfo_descriptor,
        new java.lang.String[] { "AveragePosition", "PositionDetails", });
    internal_static_CDOTAUserMsg_StatsHeroPositionInfo_PositionPair_descriptor =
      internal_static_CDOTAUserMsg_StatsHeroPositionInfo_descriptor.getNestedTypes().get(0);
    internal_static_CDOTAUserMsg_StatsHeroPositionInfo_PositionPair_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_StatsHeroPositionInfo_PositionPair_descriptor,
        new java.lang.String[] { "PositionCategory", "PositionCount", });
    internal_static_CDOTAUserMsg_StatsPlayerKillShare_descriptor =
      getDescriptor().getMessageTypes().get(55);
    internal_static_CDOTAUserMsg_StatsPlayerKillShare_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_StatsPlayerKillShare_descriptor,
        new java.lang.String[] { "PlayerId", "KillSharePercent", "PlayerLocX", "PlayerLocY", "HealthPercent", "ManaPercent", });
    internal_static_CDOTAUserMsg_StatsKillDetails_descriptor =
      getDescriptor().getMessageTypes().get(56);
    internal_static_CDOTAUserMsg_StatsKillDetails_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_StatsKillDetails_descriptor,
        new java.lang.String[] { "VictimId", "KillShares", "DamageToKill", "EffectiveHealth", "DeathTime", "KillerId", });
    internal_static_CMsgHeroAbilityStat_descriptor =
      getDescriptor().getMessageTypes().get(57);
    internal_static_CMsgHeroAbilityStat_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CMsgHeroAbilityStat_descriptor,
        new java.lang.String[] { "StatType", "IntValue", "FloatValue", });
    internal_static_CMsgCombatAnalyzerPlayerStat_descriptor =
      getDescriptor().getMessageTypes().get(58);
    internal_static_CMsgCombatAnalyzerPlayerStat_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CMsgCombatAnalyzerPlayerStat_descriptor,
        new java.lang.String[] { "AccountId", "HeroAbilityStats", });
    internal_static_CMsgCombatAnalyzerStats_descriptor =
      getDescriptor().getMessageTypes().get(59);
    internal_static_CMsgCombatAnalyzerStats_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CMsgCombatAnalyzerStats_descriptor,
        new java.lang.String[] { "MatchId", "PlayerStats", });
    internal_static_CDOTAUserMsg_ProjectionAbility_descriptor =
      getDescriptor().getMessageTypes().get(60);
    internal_static_CDOTAUserMsg_ProjectionAbility_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_ProjectionAbility_descriptor,
        new java.lang.String[] { "AbilityId", "CasterEntIndex", "CasterTeam", "ChannelEnd", "Origin", "TrackCasterOnly", "EndTime", "VictimEntIndex", });
    internal_static_CDOTAUserMsg_ProjectionEvent_descriptor =
      getDescriptor().getMessageTypes().get(61);
    internal_static_CDOTAUserMsg_ProjectionEvent_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_ProjectionEvent_descriptor,
        new java.lang.String[] { "EventId", "Team", });
    internal_static_CDOTAUserMsg_XPAlert_descriptor =
      getDescriptor().getMessageTypes().get(62);
    internal_static_CDOTAUserMsg_XPAlert_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_XPAlert_descriptor,
        new java.lang.String[] { "PlayerId", "TargetEntindex", });
    internal_static_CDOTAUserMsg_TalentTreeAlert_descriptor =
      getDescriptor().getMessageTypes().get(63);
    internal_static_CDOTAUserMsg_TalentTreeAlert_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_TalentTreeAlert_descriptor,
        new java.lang.String[] { "PlayerId", "TargetEntindex", "AbilityId", "Slot", "Learned", });
    internal_static_CDOTAUserMsg_UpdateQuestProgress_descriptor =
      getDescriptor().getMessageTypes().get(64);
    internal_static_CDOTAUserMsg_UpdateQuestProgress_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_UpdateQuestProgress_descriptor,
        new java.lang.String[] { });
    internal_static_CDOTAUserMsg_SelectPenaltyGold_descriptor =
      getDescriptor().getMessageTypes().get(65);
    internal_static_CDOTAUserMsg_SelectPenaltyGold_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_SelectPenaltyGold_descriptor,
        new java.lang.String[] { "PlayerId", "Cost", });
    internal_static_CDOTAUserMsg_RollDiceResult_descriptor =
      getDescriptor().getMessageTypes().get(66);
    internal_static_CDOTAUserMsg_RollDiceResult_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_RollDiceResult_descriptor,
        new java.lang.String[] { "PlayerId", "ChannelType", "RollMin", "RollMax", "Result", });
    internal_static_CDOTAUserMsg_FlipCoinResult_descriptor =
      getDescriptor().getMessageTypes().get(67);
    internal_static_CDOTAUserMsg_FlipCoinResult_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_FlipCoinResult_descriptor,
        new java.lang.String[] { "PlayerId", "ChannelType", "Result", });
    internal_static_CDOTAUserMessage_TeamCaptainChanged_descriptor =
      getDescriptor().getMessageTypes().get(68);
    internal_static_CDOTAUserMessage_TeamCaptainChanged_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMessage_TeamCaptainChanged_descriptor,
        new java.lang.String[] { "Team", "CaptainPlayerId", });
    internal_static_CDOTAUserMsg_HeroRelicProgress_descriptor =
      getDescriptor().getMessageTypes().get(69);
    internal_static_CDOTAUserMsg_HeroRelicProgress_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_HeroRelicProgress_descriptor,
        new java.lang.String[] { "HeroRelicType", "Value", "Ehandle", "EventId", });
    internal_static_CDOTAUserMsg_DamageReport_descriptor =
      getDescriptor().getMessageTypes().get(70);
    internal_static_CDOTAUserMsg_DamageReport_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_DamageReport_descriptor,
        new java.lang.String[] { "PlayerId", "TargetHeroId", "SourceHeroId", "DamageAmount", "Broadcast", });
    internal_static_CDOTAUserMsg_SalutePlayer_descriptor =
      getDescriptor().getMessageTypes().get(71);
    internal_static_CDOTAUserMsg_SalutePlayer_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_SalutePlayer_descriptor,
        new java.lang.String[] { "SourcePlayerId", "TargetPlayerId", "TipAmount", "EventId", });
    internal_static_CDOTAUserMsg_TipAlert_descriptor =
      getDescriptor().getMessageTypes().get(72);
    internal_static_CDOTAUserMsg_TipAlert_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_TipAlert_descriptor,
        new java.lang.String[] { "PlayerId", "TipText", });
    internal_static_CDOTAUserMsg_ESArcanaCombo_descriptor =
      getDescriptor().getMessageTypes().get(73);
    internal_static_CDOTAUserMsg_ESArcanaCombo_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_ESArcanaCombo_descriptor,
        new java.lang.String[] { "Ehandle", "ComboCount", "ArcanaLevel", });
    internal_static_CDOTAUserMsg_ESArcanaComboSummary_descriptor =
      getDescriptor().getMessageTypes().get(74);
    internal_static_CDOTAUserMsg_ESArcanaComboSummary_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_ESArcanaComboSummary_descriptor,
        new java.lang.String[] { "Ehandle", "ComboCount", "DamageAmount", });
    internal_static_CDOTAUserMsg_OMArcanaCombo_descriptor =
      getDescriptor().getMessageTypes().get(75);
    internal_static_CDOTAUserMsg_OMArcanaCombo_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_OMArcanaCombo_descriptor,
        new java.lang.String[] { "Ehandle", "MulticastAmount", "ArcanaLevel", "MulticastChance", });
    internal_static_CDOTAUserMsg_HighFiveCompleted_descriptor =
      getDescriptor().getMessageTypes().get(76);
    internal_static_CDOTAUserMsg_HighFiveCompleted_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_HighFiveCompleted_descriptor,
        new java.lang.String[] { "PlayerId1", "PlayerId2", "SpecialHighFive", });
    internal_static_CDOTAUserMsg_HighFiveLeftHanging_descriptor =
      getDescriptor().getMessageTypes().get(77);
    internal_static_CDOTAUserMsg_HighFiveLeftHanging_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_HighFiveLeftHanging_descriptor,
        new java.lang.String[] { "PlayerId", });
    internal_static_CDOTAUserMsg_ShovelUnearth_descriptor =
      getDescriptor().getMessageTypes().get(78);
    internal_static_CDOTAUserMsg_ShovelUnearth_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_ShovelUnearth_descriptor,
        new java.lang.String[] { "PlayerId", "AllChat", "Locstring", "Quantity", });
    internal_static_CDOTAUserMsg_AllStarEvent_descriptor =
      getDescriptor().getMessageTypes().get(79);
    internal_static_CDOTAUserMsg_AllStarEvent_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_AllStarEvent_descriptor,
        new java.lang.String[] { "SourcePlayerId", "TargetPlayerId", "PointAmount", "EventId", "PlayerScores", });
    internal_static_CDOTAUserMsg_AllStarEvent_PlayerScore_descriptor =
      internal_static_CDOTAUserMsg_AllStarEvent_descriptor.getNestedTypes().get(0);
    internal_static_CDOTAUserMsg_AllStarEvent_PlayerScore_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_AllStarEvent_PlayerScore_descriptor,
        new java.lang.String[] { "PlayerId", "ScoreSansKda", });
    internal_static_CDOTAUserMsg_QueuedOrderRemoved_descriptor =
      getDescriptor().getMessageTypes().get(80);
    internal_static_CDOTAUserMsg_QueuedOrderRemoved_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_QueuedOrderRemoved_descriptor,
        new java.lang.String[] { "UnitOrderSequence", });
    internal_static_CDOTAUserMsg_DebugChallenge_descriptor =
      getDescriptor().getMessageTypes().get(81);
    internal_static_CDOTAUserMsg_DebugChallenge_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_DebugChallenge_descriptor,
        new java.lang.String[] { "ChallengeType", "ChallengeQueryId", "EventId", "InstanceId", "ChallengeVar0", "ChallengeVar1", "ChallengeMaxRank", });
    internal_static_CDOTAUserMsg_FoundNeutralItem_descriptor =
      getDescriptor().getMessageTypes().get(82);
    internal_static_CDOTAUserMsg_FoundNeutralItem_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_FoundNeutralItem_descriptor,
        new java.lang.String[] { "PlayerId", "ItemAbilityId", "ItemTier", "TierItemCount", });
    internal_static_CDOTAUserMsg_OutpostCaptured_descriptor =
      getDescriptor().getMessageTypes().get(83);
    internal_static_CDOTAUserMsg_OutpostCaptured_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_OutpostCaptured_descriptor,
        new java.lang.String[] { "OutpostEntindex", "TeamId", });
    internal_static_CDOTAUserMsg_OutpostGrantedXP_descriptor =
      getDescriptor().getMessageTypes().get(84);
    internal_static_CDOTAUserMsg_OutpostGrantedXP_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_OutpostGrantedXP_descriptor,
        new java.lang.String[] { "TeamId", "XpAmount", });
    internal_static_CDOTAUserMsg_MoveCameraToUnit_descriptor =
      getDescriptor().getMessageTypes().get(85);
    internal_static_CDOTAUserMsg_MoveCameraToUnit_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_MoveCameraToUnit_descriptor,
        new java.lang.String[] { "UnitEhandle", });
    internal_static_CDOTAUserMsg_PauseMinigameData_descriptor =
      getDescriptor().getMessageTypes().get(86);
    internal_static_CDOTAUserMsg_PauseMinigameData_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_PauseMinigameData_descriptor,
        new java.lang.String[] { "DataBits", });
    internal_static_CDOTAUserMsg_PauseMinigameData_DataBit_descriptor =
      internal_static_CDOTAUserMsg_PauseMinigameData_descriptor.getNestedTypes().get(0);
    internal_static_CDOTAUserMsg_PauseMinigameData_DataBit_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_PauseMinigameData_DataBit_descriptor,
        new java.lang.String[] { "Index", "Data", "DataExtra", });
    internal_static_CDOTAUserMsg_VersusScene_PlayerBehavior_descriptor =
      getDescriptor().getMessageTypes().get(87);
    internal_static_CDOTAUserMsg_VersusScene_PlayerBehavior_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_VersusScene_PlayerBehavior_descriptor,
        new java.lang.String[] { "PlayerId", "Behavior", "PlayActivity", "ChatWheel", "PlaybackRate", });
    internal_static_CDOTAUserMsg_QoP_ArcanaSummary_descriptor =
      getDescriptor().getMessageTypes().get(88);
    internal_static_CDOTAUserMsg_QoP_ArcanaSummary_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_QoP_ArcanaSummary_descriptor,
        new java.lang.String[] { "Ehandle", "ArcanaLevel", "PlayersHit", "PlayersKilled", });
    internal_static_CDOTAUserMsg_HotPotato_Created_descriptor =
      getDescriptor().getMessageTypes().get(89);
    internal_static_CDOTAUserMsg_HotPotato_Created_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_HotPotato_Created_descriptor,
        new java.lang.String[] { "PlayerId1", "PlayerId2", });
    internal_static_CDOTAUserMsg_HotPotato_Exploded_descriptor =
      getDescriptor().getMessageTypes().get(90);
    internal_static_CDOTAUserMsg_HotPotato_Exploded_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_HotPotato_Exploded_descriptor,
        new java.lang.String[] { "PlayerId", });
    internal_static_CDOTAUserMsg_WK_Arcana_Progress_descriptor =
      getDescriptor().getMessageTypes().get(91);
    internal_static_CDOTAUserMsg_WK_Arcana_Progress_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_WK_Arcana_Progress_descriptor,
        new java.lang.String[] { "Ehandle", "ArcanaLevel", "HeroId", });
    internal_static_CDOTAUserMsg_GuildChallenge_Progress_descriptor =
      getDescriptor().getMessageTypes().get(92);
    internal_static_CDOTAUserMsg_GuildChallenge_Progress_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_GuildChallenge_Progress_descriptor,
        new java.lang.String[] { "PlayerProgress", "GuildId", "ChallengeInstanceId", "ChallengeParameter", "ChallengeType", "ChallengeProgressAtStart", "Complete", });
    internal_static_CDOTAUserMsg_GuildChallenge_Progress_PlayerProgress_descriptor =
      internal_static_CDOTAUserMsg_GuildChallenge_Progress_descriptor.getNestedTypes().get(0);
    internal_static_CDOTAUserMsg_GuildChallenge_Progress_PlayerProgress_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_GuildChallenge_Progress_PlayerProgress_descriptor,
        new java.lang.String[] { "PlayerId", "Progress", });
    internal_static_CDOTAUserMsg_WRArcanaProgress_descriptor =
      getDescriptor().getMessageTypes().get(93);
    internal_static_CDOTAUserMsg_WRArcanaProgress_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_WRArcanaProgress_descriptor,
        new java.lang.String[] { "Ehandle", "TargetEhandle", "ArrowsLanded", "DamageDealt", "TargetHp", "TargetMaxHp", "ArcanaLevel", });
    internal_static_CDOTAUserMsg_WRArcanaSummary_descriptor =
      getDescriptor().getMessageTypes().get(94);
    internal_static_CDOTAUserMsg_WRArcanaSummary_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_WRArcanaSummary_descriptor,
        new java.lang.String[] { "Ehandle", "TargetEhandle", "ArrowsLanded", "DamageDealt", "TargetHp", "TargetMaxHp", "ArcanaLevel", "Success", });
    internal_static_CDOTAUserMsg_EmptyItemSlotAlert_descriptor =
      getDescriptor().getMessageTypes().get(95);
    internal_static_CDOTAUserMsg_EmptyItemSlotAlert_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_EmptyItemSlotAlert_descriptor,
        new java.lang.String[] { "SourcePlayerId", "TargetPlayerId", "SlotIndex", "CooldownSeconds", });
    internal_static_CDOTAUserMsg_AghsStatusAlert_descriptor =
      getDescriptor().getMessageTypes().get(96);
    internal_static_CDOTAUserMsg_AghsStatusAlert_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_AghsStatusAlert_descriptor,
        new java.lang.String[] { "SourcePlayerId", "TargetPlayerId", "TargetEntindex", "AlertType", "HasScepter", "HasShard", });
    internal_static_CDOTAUserMsg_MutedPlayers_descriptor =
      getDescriptor().getMessageTypes().get(97);
    internal_static_CDOTAUserMsg_MutedPlayers_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_MutedPlayers_descriptor,
        new java.lang.String[] { "TextMutedPlayerIds", "VoiceMutedPlayerIds", });
    internal_static_CDOTAUserMsg_ContextualTip_descriptor =
      getDescriptor().getMessageTypes().get(98);
    internal_static_CDOTAUserMsg_ContextualTip_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_ContextualTip_descriptor,
        new java.lang.String[] { "TipId", "ReferencedAbilities", "ReferencedUnits", "PanoramaClasses", "ForceAnnotation", "Variant", "IntParam", "IntParam2", "FloatParam", "FloatParam2", "StringParam", "StringParam2", "TipTextOverride", "TipAnnotationOverride", "PanoramaSnippet", });
    internal_static_CDOTAUserMsg_ChatMessage_descriptor =
      getDescriptor().getMessageTypes().get(99);
    internal_static_CDOTAUserMsg_ChatMessage_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_ChatMessage_descriptor,
        new java.lang.String[] { "SourcePlayerId", "ChannelType", "MessageText", });
    internal_static_CMsgDOTACombatLogEntry_descriptor =
      getDescriptor().getMessageTypes().get(100);
    internal_static_CMsgDOTACombatLogEntry_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CMsgDOTACombatLogEntry_descriptor,
        new java.lang.String[] { "Type", "TargetName", "TargetSourceName", "AttackerName", "DamageSourceName", "InflictorName", "IsAttackerIllusion", "IsAttackerHero", "IsTargetIllusion", "IsTargetHero", "IsVisibleRadiant", "IsVisibleDire", "Value", "Health", "Timestamp", "StunDuration", "SlowDuration", "IsAbilityToggleOn", "IsAbilityToggleOff", "AbilityLevel", "LocationX", "LocationY", "GoldReason", "TimestampRaw", "ModifierDuration", "XpReason", "LastHits", "AttackerTeam", "TargetTeam", "ObsWardsPlaced", "AssistPlayer0", "AssistPlayer1", "AssistPlayer2", "AssistPlayer3", "StackCount", "HiddenModifier", "IsTargetBuilding", "NeutralCampType", "RuneType", "AssistPlayers", "IsHealSave", "IsUltimateAbility", "AttackerHeroLevel", "TargetHeroLevel", "Xpm", "Gpm", "EventLocation", "TargetIsSelf", "DamageType", "InvisibilityModifier", "DamageCategory", "Networth", "BuildingType", "ModifierElapsedDuration", "SilenceModifier", "HealFromLifesteal", "ModifierPurged", "SpellEvaded", "MotionControllerModifier", "LongRangeKill", "ModifierPurgeAbility", "ModifierPurgeNpc", "RootModifier", "TotalUnitDeathCount", "AuraModifier", "ArmorDebuffModifier", "NoPhysicalDamageModifier", "ModifierAbility", "ModifierHidden", "InflictorIsStolenAbility", "KillEaterEvent", "UnitStatusLabel", "SpellGeneratedAttack", "AtNightTime", "AttackerHasScepter", });
    skadistats.clarity.wire.common.proto.NetworkBaseTypes.getDescriptor();
    skadistats.clarity.wire.common.proto.DotaCommonMessages.getDescriptor();
  }

  // @@protoc_insertion_point(outer_class_scope)
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy