// Generated by the Protocol Buffers 3.0 compiler.  DO NOT EDIT!
// Source file "POGOProtos.Networking.Requests.Messages.proto"
// Syntax "Proto3"

import Foundation
import ProtocolBuffers


public func == (lhs: Pogoprotos.Networking.Requests.Messages.AddFortModifierMessage, rhs: Pogoprotos.Networking.Requests.Messages.AddFortModifierMessage) -> Bool {
  if (lhs === rhs) {
    return true
  }
  var fieldCheck:Bool = (lhs.hashValue == rhs.hashValue)
  fieldCheck = fieldCheck && (lhs.hasModifierType == rhs.hasModifierType) && (!lhs.hasModifierType || lhs.modifierType == rhs.modifierType)
  fieldCheck = fieldCheck && (lhs.hasFortId == rhs.hasFortId) && (!lhs.hasFortId || lhs.fortId == rhs.fortId)
  fieldCheck = fieldCheck && (lhs.hasPlayerLatitude == rhs.hasPlayerLatitude) && (!lhs.hasPlayerLatitude || lhs.playerLatitude == rhs.playerLatitude)
  fieldCheck = fieldCheck && (lhs.hasPlayerLongitude == rhs.hasPlayerLongitude) && (!lhs.hasPlayerLongitude || lhs.playerLongitude == rhs.playerLongitude)
  fieldCheck = (fieldCheck && (lhs.unknownFields == rhs.unknownFields))
  return fieldCheck
}

public func == (lhs: Pogoprotos.Networking.Requests.Messages.AttackGymMessage, rhs: Pogoprotos.Networking.Requests.Messages.AttackGymMessage) -> Bool {
  if (lhs === rhs) {
    return true
  }
  var fieldCheck:Bool = (lhs.hashValue == rhs.hashValue)
  fieldCheck = fieldCheck && (lhs.hasGymId == rhs.hasGymId) && (!lhs.hasGymId || lhs.gymId == rhs.gymId)
  fieldCheck = fieldCheck && (lhs.hasBattleId == rhs.hasBattleId) && (!lhs.hasBattleId || lhs.battleId == rhs.battleId)
  fieldCheck = fieldCheck && (lhs.attackActions == rhs.attackActions)
  fieldCheck = fieldCheck && (lhs.hasLastRetrievedActions == rhs.hasLastRetrievedActions) && (!lhs.hasLastRetrievedActions || lhs.lastRetrievedActions == rhs.lastRetrievedActions)
  fieldCheck = fieldCheck && (lhs.hasPlayerLatitude == rhs.hasPlayerLatitude) && (!lhs.hasPlayerLatitude || lhs.playerLatitude == rhs.playerLatitude)
  fieldCheck = fieldCheck && (lhs.hasPlayerLongitude == rhs.hasPlayerLongitude) && (!lhs.hasPlayerLongitude || lhs.playerLongitude == rhs.playerLongitude)
  fieldCheck = (fieldCheck && (lhs.unknownFields == rhs.unknownFields))
  return fieldCheck
}

public func == (lhs: Pogoprotos.Networking.Requests.Messages.CatchPokemonMessage, rhs: Pogoprotos.Networking.Requests.Messages.CatchPokemonMessage) -> Bool {
  if (lhs === rhs) {
    return true
  }
  var fieldCheck:Bool = (lhs.hashValue == rhs.hashValue)
  fieldCheck = fieldCheck && (lhs.hasEncounterId == rhs.hasEncounterId) && (!lhs.hasEncounterId || lhs.encounterId == rhs.encounterId)
  fieldCheck = fieldCheck && (lhs.hasPokeball == rhs.hasPokeball) && (!lhs.hasPokeball || lhs.pokeball == rhs.pokeball)
  fieldCheck = fieldCheck && (lhs.hasNormalizedReticleSize == rhs.hasNormalizedReticleSize) && (!lhs.hasNormalizedReticleSize || lhs.normalizedReticleSize == rhs.normalizedReticleSize)
  fieldCheck = fieldCheck && (lhs.hasSpawnPointId == rhs.hasSpawnPointId) && (!lhs.hasSpawnPointId || lhs.spawnPointId == rhs.spawnPointId)
  fieldCheck = fieldCheck && (lhs.hasHitPokemon == rhs.hasHitPokemon) && (!lhs.hasHitPokemon || lhs.hitPokemon == rhs.hitPokemon)
  fieldCheck = fieldCheck && (lhs.hasSpinModifier == rhs.hasSpinModifier) && (!lhs.hasSpinModifier || lhs.spinModifier == rhs.spinModifier)
  fieldCheck = fieldCheck && (lhs.hasNormalizedHitPosition == rhs.hasNormalizedHitPosition) && (!lhs.hasNormalizedHitPosition || lhs.normalizedHitPosition == rhs.normalizedHitPosition)
  fieldCheck = (fieldCheck && (lhs.unknownFields == rhs.unknownFields))
  return fieldCheck
}

public func == (lhs: Pogoprotos.Networking.Requests.Messages.CheckAwardedBadgesMessage, rhs: Pogoprotos.Networking.Requests.Messages.CheckAwardedBadgesMessage) -> Bool {
  if (lhs === rhs) {
    return true
  }
  var fieldCheck:Bool = (lhs.hashValue == rhs.hashValue)
  fieldCheck = (fieldCheck && (lhs.unknownFields == rhs.unknownFields))
  return fieldCheck
}

public func == (lhs: Pogoprotos.Networking.Requests.Messages.CheckCodenameAvailableMessage, rhs: Pogoprotos.Networking.Requests.Messages.CheckCodenameAvailableMessage) -> Bool {
  if (lhs === rhs) {
    return true
  }
  var fieldCheck:Bool = (lhs.hashValue == rhs.hashValue)
  fieldCheck = fieldCheck && (lhs.hasCodename == rhs.hasCodename) && (!lhs.hasCodename || lhs.codename == rhs.codename)
  fieldCheck = (fieldCheck && (lhs.unknownFields == rhs.unknownFields))
  return fieldCheck
}

public func == (lhs: Pogoprotos.Networking.Requests.Messages.ClaimCodenameMessage, rhs: Pogoprotos.Networking.Requests.Messages.ClaimCodenameMessage) -> Bool {
  if (lhs === rhs) {
    return true
  }
  var fieldCheck:Bool = (lhs.hashValue == rhs.hashValue)
  fieldCheck = fieldCheck && (lhs.hasCodename == rhs.hasCodename) && (!lhs.hasCodename || lhs.codename == rhs.codename)
  fieldCheck = (fieldCheck && (lhs.unknownFields == rhs.unknownFields))
  return fieldCheck
}

public func == (lhs: Pogoprotos.Networking.Requests.Messages.CollectDailyBonusMessage, rhs: Pogoprotos.Networking.Requests.Messages.CollectDailyBonusMessage) -> Bool {
  if (lhs === rhs) {
    return true
  }
  var fieldCheck:Bool = (lhs.hashValue == rhs.hashValue)
  fieldCheck = (fieldCheck && (lhs.unknownFields == rhs.unknownFields))
  return fieldCheck
}

public func == (lhs: Pogoprotos.Networking.Requests.Messages.CollectDailyDefenderBonusMessage, rhs: Pogoprotos.Networking.Requests.Messages.CollectDailyDefenderBonusMessage) -> Bool {
  if (lhs === rhs) {
    return true
  }
  var fieldCheck:Bool = (lhs.hashValue == rhs.hashValue)
  fieldCheck = (fieldCheck && (lhs.unknownFields == rhs.unknownFields))
  return fieldCheck
}

public func == (lhs: Pogoprotos.Networking.Requests.Messages.DiskEncounterMessage, rhs: Pogoprotos.Networking.Requests.Messages.DiskEncounterMessage) -> Bool {
  if (lhs === rhs) {
    return true
  }
  var fieldCheck:Bool = (lhs.hashValue == rhs.hashValue)
  fieldCheck = fieldCheck && (lhs.hasEncounterId == rhs.hasEncounterId) && (!lhs.hasEncounterId || lhs.encounterId == rhs.encounterId)
  fieldCheck = fieldCheck && (lhs.hasFortId == rhs.hasFortId) && (!lhs.hasFortId || lhs.fortId == rhs.fortId)
  fieldCheck = fieldCheck && (lhs.hasPlayerLatitude == rhs.hasPlayerLatitude) && (!lhs.hasPlayerLatitude || lhs.playerLatitude == rhs.playerLatitude)
  fieldCheck = fieldCheck && (lhs.hasPlayerLongitude == rhs.hasPlayerLongitude) && (!lhs.hasPlayerLongitude || lhs.playerLongitude == rhs.playerLongitude)
  fieldCheck = (fieldCheck && (lhs.unknownFields == rhs.unknownFields))
  return fieldCheck
}

public func == (lhs: Pogoprotos.Networking.Requests.Messages.DownloadItemTemplatesMessage, rhs: Pogoprotos.Networking.Requests.Messages.DownloadItemTemplatesMessage) -> Bool {
  if (lhs === rhs) {
    return true
  }
  var fieldCheck:Bool = (lhs.hashValue == rhs.hashValue)
  fieldCheck = (fieldCheck && (lhs.unknownFields == rhs.unknownFields))
  return fieldCheck
}

public func == (lhs: Pogoprotos.Networking.Requests.Messages.DownloadRemoteConfigVersionMessage, rhs: Pogoprotos.Networking.Requests.Messages.DownloadRemoteConfigVersionMessage) -> Bool {
  if (lhs === rhs) {
    return true
  }
  var fieldCheck:Bool = (lhs.hashValue == rhs.hashValue)
  fieldCheck = fieldCheck && (lhs.hasPlatform == rhs.hasPlatform) && (!lhs.hasPlatform || lhs.platform == rhs.platform)
  fieldCheck = fieldCheck && (lhs.hasDeviceManufacturer == rhs.hasDeviceManufacturer) && (!lhs.hasDeviceManufacturer || lhs.deviceManufacturer == rhs.deviceManufacturer)
  fieldCheck = fieldCheck && (lhs.hasDeviceModel == rhs.hasDeviceModel) && (!lhs.hasDeviceModel || lhs.deviceModel == rhs.deviceModel)
  fieldCheck = fieldCheck && (lhs.hasLocale == rhs.hasLocale) && (!lhs.hasLocale || lhs.locale == rhs.locale)
  fieldCheck = fieldCheck && (lhs.hasAppVersion == rhs.hasAppVersion) && (!lhs.hasAppVersion || lhs.appVersion == rhs.appVersion)
  fieldCheck = (fieldCheck && (lhs.unknownFields == rhs.unknownFields))
  return fieldCheck
}

public func == (lhs: Pogoprotos.Networking.Requests.Messages.DownloadSettingsMessage, rhs: Pogoprotos.Networking.Requests.Messages.DownloadSettingsMessage) -> Bool {
  if (lhs === rhs) {
    return true
  }
  var fieldCheck:Bool = (lhs.hashValue == rhs.hashValue)
  fieldCheck = fieldCheck && (lhs.hasHash == rhs.hasHash) && (!lhs.hasHash || lhs.hash == rhs.hash)
  fieldCheck = (fieldCheck && (lhs.unknownFields == rhs.unknownFields))
  return fieldCheck
}

public func == (lhs: Pogoprotos.Networking.Requests.Messages.EchoMessage, rhs: Pogoprotos.Networking.Requests.Messages.EchoMessage) -> Bool {
  if (lhs === rhs) {
    return true
  }
  var fieldCheck:Bool = (lhs.hashValue == rhs.hashValue)
  fieldCheck = (fieldCheck && (lhs.unknownFields == rhs.unknownFields))
  return fieldCheck
}

public func == (lhs: Pogoprotos.Networking.Requests.Messages.EncounterMessage, rhs: Pogoprotos.Networking.Requests.Messages.EncounterMessage) -> Bool {
  if (lhs === rhs) {
    return true
  }
  var fieldCheck:Bool = (lhs.hashValue == rhs.hashValue)
  fieldCheck = fieldCheck && (lhs.hasEncounterId == rhs.hasEncounterId) && (!lhs.hasEncounterId || lhs.encounterId == rhs.encounterId)
  fieldCheck = fieldCheck && (lhs.hasSpawnPointId == rhs.hasSpawnPointId) && (!lhs.hasSpawnPointId || lhs.spawnPointId == rhs.spawnPointId)
  fieldCheck = fieldCheck && (lhs.hasPlayerLatitude == rhs.hasPlayerLatitude) && (!lhs.hasPlayerLatitude || lhs.playerLatitude == rhs.playerLatitude)
  fieldCheck = fieldCheck && (lhs.hasPlayerLongitude == rhs.hasPlayerLongitude) && (!lhs.hasPlayerLongitude || lhs.playerLongitude == rhs.playerLongitude)
  fieldCheck = (fieldCheck && (lhs.unknownFields == rhs.unknownFields))
  return fieldCheck
}

public func == (lhs: Pogoprotos.Networking.Requests.Messages.EncounterTutorialCompleteMessage, rhs: Pogoprotos.Networking.Requests.Messages.EncounterTutorialCompleteMessage) -> Bool {
  if (lhs === rhs) {
    return true
  }
  var fieldCheck:Bool = (lhs.hashValue == rhs.hashValue)
  fieldCheck = fieldCheck && (lhs.hasPokemonId == rhs.hasPokemonId) && (!lhs.hasPokemonId || lhs.pokemonId == rhs.pokemonId)
  fieldCheck = (fieldCheck && (lhs.unknownFields == rhs.unknownFields))
  return fieldCheck
}

public func == (lhs: Pogoprotos.Networking.Requests.Messages.EquipBadgeMessage, rhs: Pogoprotos.Networking.Requests.Messages.EquipBadgeMessage) -> Bool {
  if (lhs === rhs) {
    return true
  }
  var fieldCheck:Bool = (lhs.hashValue == rhs.hashValue)
  fieldCheck = fieldCheck && (lhs.hasBadgeType == rhs.hasBadgeType) && (!lhs.hasBadgeType || lhs.badgeType == rhs.badgeType)
  fieldCheck = (fieldCheck && (lhs.unknownFields == rhs.unknownFields))
  return fieldCheck
}

public func == (lhs: Pogoprotos.Networking.Requests.Messages.EvolvePokemonMessage, rhs: Pogoprotos.Networking.Requests.Messages.EvolvePokemonMessage) -> Bool {
  if (lhs === rhs) {
    return true
  }
  var fieldCheck:Bool = (lhs.hashValue == rhs.hashValue)
  fieldCheck = fieldCheck && (lhs.hasPokemonId == rhs.hasPokemonId) && (!lhs.hasPokemonId || lhs.pokemonId == rhs.pokemonId)
  fieldCheck = (fieldCheck && (lhs.unknownFields == rhs.unknownFields))
  return fieldCheck
}

public func == (lhs: Pogoprotos.Networking.Requests.Messages.FortDeployPokemonMessage, rhs: Pogoprotos.Networking.Requests.Messages.FortDeployPokemonMessage) -> Bool {
  if (lhs === rhs) {
    return true
  }
  var fieldCheck:Bool = (lhs.hashValue == rhs.hashValue)
  fieldCheck = fieldCheck && (lhs.hasFortId == rhs.hasFortId) && (!lhs.hasFortId || lhs.fortId == rhs.fortId)
  fieldCheck = fieldCheck && (lhs.hasPokemonId == rhs.hasPokemonId) && (!lhs.hasPokemonId || lhs.pokemonId == rhs.pokemonId)
  fieldCheck = fieldCheck && (lhs.hasPlayerLatitude == rhs.hasPlayerLatitude) && (!lhs.hasPlayerLatitude || lhs.playerLatitude == rhs.playerLatitude)
  fieldCheck = fieldCheck && (lhs.hasPlayerLongitude == rhs.hasPlayerLongitude) && (!lhs.hasPlayerLongitude || lhs.playerLongitude == rhs.playerLongitude)
  fieldCheck = (fieldCheck && (lhs.unknownFields == rhs.unknownFields))
  return fieldCheck
}

public func == (lhs: Pogoprotos.Networking.Requests.Messages.FortDetailsMessage, rhs: Pogoprotos.Networking.Requests.Messages.FortDetailsMessage) -> Bool {
  if (lhs === rhs) {
    return true
  }
  var fieldCheck:Bool = (lhs.hashValue == rhs.hashValue)
  fieldCheck = fieldCheck && (lhs.hasFortId == rhs.hasFortId) && (!lhs.hasFortId || lhs.fortId == rhs.fortId)
  fieldCheck = fieldCheck && (lhs.hasLatitude == rhs.hasLatitude) && (!lhs.hasLatitude || lhs.latitude == rhs.latitude)
  fieldCheck = fieldCheck && (lhs.hasLongitude == rhs.hasLongitude) && (!lhs.hasLongitude || lhs.longitude == rhs.longitude)
  fieldCheck = (fieldCheck && (lhs.unknownFields == rhs.unknownFields))
  return fieldCheck
}

public func == (lhs: Pogoprotos.Networking.Requests.Messages.FortRecallPokemonMessage, rhs: Pogoprotos.Networking.Requests.Messages.FortRecallPokemonMessage) -> Bool {
  if (lhs === rhs) {
    return true
  }
  var fieldCheck:Bool = (lhs.hashValue == rhs.hashValue)
  fieldCheck = fieldCheck && (lhs.hasFortId == rhs.hasFortId) && (!lhs.hasFortId || lhs.fortId == rhs.fortId)
  fieldCheck = fieldCheck && (lhs.hasPokemonId == rhs.hasPokemonId) && (!lhs.hasPokemonId || lhs.pokemonId == rhs.pokemonId)
  fieldCheck = fieldCheck && (lhs.hasPlayerLatitude == rhs.hasPlayerLatitude) && (!lhs.hasPlayerLatitude || lhs.playerLatitude == rhs.playerLatitude)
  fieldCheck = fieldCheck && (lhs.hasPlayerLongitude == rhs.hasPlayerLongitude) && (!lhs.hasPlayerLongitude || lhs.playerLongitude == rhs.playerLongitude)
  fieldCheck = (fieldCheck && (lhs.unknownFields == rhs.unknownFields))
  return fieldCheck
}

public func == (lhs: Pogoprotos.Networking.Requests.Messages.FortSearchMessage, rhs: Pogoprotos.Networking.Requests.Messages.FortSearchMessage) -> Bool {
  if (lhs === rhs) {
    return true
  }
  var fieldCheck:Bool = (lhs.hashValue == rhs.hashValue)
  fieldCheck = fieldCheck && (lhs.hasFortId == rhs.hasFortId) && (!lhs.hasFortId || lhs.fortId == rhs.fortId)
  fieldCheck = fieldCheck && (lhs.hasPlayerLatitude == rhs.hasPlayerLatitude) && (!lhs.hasPlayerLatitude || lhs.playerLatitude == rhs.playerLatitude)
  fieldCheck = fieldCheck && (lhs.hasPlayerLongitude == rhs.hasPlayerLongitude) && (!lhs.hasPlayerLongitude || lhs.playerLongitude == rhs.playerLongitude)
  fieldCheck = fieldCheck && (lhs.hasFortLatitude == rhs.hasFortLatitude) && (!lhs.hasFortLatitude || lhs.fortLatitude == rhs.fortLatitude)
  fieldCheck = fieldCheck && (lhs.hasFortLongitude == rhs.hasFortLongitude) && (!lhs.hasFortLongitude || lhs.fortLongitude == rhs.fortLongitude)
  fieldCheck = (fieldCheck && (lhs.unknownFields == rhs.unknownFields))
  return fieldCheck
}

public func == (lhs: Pogoprotos.Networking.Requests.Messages.GetAssetDigestMessage, rhs: Pogoprotos.Networking.Requests.Messages.GetAssetDigestMessage) -> Bool {
  if (lhs === rhs) {
    return true
  }
  var fieldCheck:Bool = (lhs.hashValue == rhs.hashValue)
  fieldCheck = fieldCheck && (lhs.hasPlatform == rhs.hasPlatform) && (!lhs.hasPlatform || lhs.platform == rhs.platform)
  fieldCheck = fieldCheck && (lhs.hasDeviceManufacturer == rhs.hasDeviceManufacturer) && (!lhs.hasDeviceManufacturer || lhs.deviceManufacturer == rhs.deviceManufacturer)
  fieldCheck = fieldCheck && (lhs.hasDeviceModel == rhs.hasDeviceModel) && (!lhs.hasDeviceModel || lhs.deviceModel == rhs.deviceModel)
  fieldCheck = fieldCheck && (lhs.hasLocale == rhs.hasLocale) && (!lhs.hasLocale || lhs.locale == rhs.locale)
  fieldCheck = fieldCheck && (lhs.hasAppVersion == rhs.hasAppVersion) && (!lhs.hasAppVersion || lhs.appVersion == rhs.appVersion)
  fieldCheck = (fieldCheck && (lhs.unknownFields == rhs.unknownFields))
  return fieldCheck
}

public func == (lhs: Pogoprotos.Networking.Requests.Messages.GetDownloadUrlsMessage, rhs: Pogoprotos.Networking.Requests.Messages.GetDownloadUrlsMessage) -> Bool {
  if (lhs === rhs) {
    return true
  }
  var fieldCheck:Bool = (lhs.hashValue == rhs.hashValue)
  fieldCheck = fieldCheck && (lhs.assetId == rhs.assetId)
  fieldCheck = (fieldCheck && (lhs.unknownFields == rhs.unknownFields))
  return fieldCheck
}

public func == (lhs: Pogoprotos.Networking.Requests.Messages.GetGymDetailsMessage, rhs: Pogoprotos.Networking.Requests.Messages.GetGymDetailsMessage) -> Bool {
  if (lhs === rhs) {
    return true
  }
  var fieldCheck:Bool = (lhs.hashValue == rhs.hashValue)
  fieldCheck = fieldCheck && (lhs.hasGymId == rhs.hasGymId) && (!lhs.hasGymId || lhs.gymId == rhs.gymId)
  fieldCheck = fieldCheck && (lhs.hasPlayerLatitude == rhs.hasPlayerLatitude) && (!lhs.hasPlayerLatitude || lhs.playerLatitude == rhs.playerLatitude)
  fieldCheck = fieldCheck && (lhs.hasPlayerLongitude == rhs.hasPlayerLongitude) && (!lhs.hasPlayerLongitude || lhs.playerLongitude == rhs.playerLongitude)
  fieldCheck = fieldCheck && (lhs.hasGymLatitude == rhs.hasGymLatitude) && (!lhs.hasGymLatitude || lhs.gymLatitude == rhs.gymLatitude)
  fieldCheck = fieldCheck && (lhs.hasGymLongitude == rhs.hasGymLongitude) && (!lhs.hasGymLongitude || lhs.gymLongitude == rhs.gymLongitude)
  fieldCheck = (fieldCheck && (lhs.unknownFields == rhs.unknownFields))
  return fieldCheck
}

public func == (lhs: Pogoprotos.Networking.Requests.Messages.GetHatchedEggsMessage, rhs: Pogoprotos.Networking.Requests.Messages.GetHatchedEggsMessage) -> Bool {
  if (lhs === rhs) {
    return true
  }
  var fieldCheck:Bool = (lhs.hashValue == rhs.hashValue)
  fieldCheck = (fieldCheck && (lhs.unknownFields == rhs.unknownFields))
  return fieldCheck
}

public func == (lhs: Pogoprotos.Networking.Requests.Messages.GetIncensePokemonMessage, rhs: Pogoprotos.Networking.Requests.Messages.GetIncensePokemonMessage) -> Bool {
  if (lhs === rhs) {
    return true
  }
  var fieldCheck:Bool = (lhs.hashValue == rhs.hashValue)
  fieldCheck = fieldCheck && (lhs.hasPlayerLatitude == rhs.hasPlayerLatitude) && (!lhs.hasPlayerLatitude || lhs.playerLatitude == rhs.playerLatitude)
  fieldCheck = fieldCheck && (lhs.hasPlayerLongitude == rhs.hasPlayerLongitude) && (!lhs.hasPlayerLongitude || lhs.playerLongitude == rhs.playerLongitude)
  fieldCheck = (fieldCheck && (lhs.unknownFields == rhs.unknownFields))
  return fieldCheck
}

public func == (lhs: Pogoprotos.Networking.Requests.Messages.GetInventoryMessage, rhs: Pogoprotos.Networking.Requests.Messages.GetInventoryMessage) -> Bool {
  if (lhs === rhs) {
    return true
  }
  var fieldCheck:Bool = (lhs.hashValue == rhs.hashValue)
  fieldCheck = fieldCheck && (lhs.hasLastTimestampMs == rhs.hasLastTimestampMs) && (!lhs.hasLastTimestampMs || lhs.lastTimestampMs == rhs.lastTimestampMs)
  fieldCheck = fieldCheck && (lhs.hasItemBeenSeen == rhs.hasItemBeenSeen) && (!lhs.hasItemBeenSeen || lhs.itemBeenSeen == rhs.itemBeenSeen)
  fieldCheck = (fieldCheck && (lhs.unknownFields == rhs.unknownFields))
  return fieldCheck
}

public func == (lhs: Pogoprotos.Networking.Requests.Messages.GetMapObjectsMessage, rhs: Pogoprotos.Networking.Requests.Messages.GetMapObjectsMessage) -> Bool {
  if (lhs === rhs) {
    return true
  }
  var fieldCheck:Bool = (lhs.hashValue == rhs.hashValue)
  fieldCheck = fieldCheck && (lhs.cellId == rhs.cellId)
  fieldCheck = fieldCheck && (lhs.sinceTimestampMs == rhs.sinceTimestampMs)
  fieldCheck = fieldCheck && (lhs.hasLatitude == rhs.hasLatitude) && (!lhs.hasLatitude || lhs.latitude == rhs.latitude)
  fieldCheck = fieldCheck && (lhs.hasLongitude == rhs.hasLongitude) && (!lhs.hasLongitude || lhs.longitude == rhs.longitude)
  fieldCheck = (fieldCheck && (lhs.unknownFields == rhs.unknownFields))
  return fieldCheck
}

public func == (lhs: Pogoprotos.Networking.Requests.Messages.GetPlayerMessage, rhs: Pogoprotos.Networking.Requests.Messages.GetPlayerMessage) -> Bool {
  if (lhs === rhs) {
    return true
  }
  var fieldCheck:Bool = (lhs.hashValue == rhs.hashValue)
  fieldCheck = (fieldCheck && (lhs.unknownFields == rhs.unknownFields))
  return fieldCheck
}

public func == (lhs: Pogoprotos.Networking.Requests.Messages.GetPlayerProfileMessage, rhs: Pogoprotos.Networking.Requests.Messages.GetPlayerProfileMessage) -> Bool {
  if (lhs === rhs) {
    return true
  }
  var fieldCheck:Bool = (lhs.hashValue == rhs.hashValue)
  fieldCheck = fieldCheck && (lhs.hasPlayerName == rhs.hasPlayerName) && (!lhs.hasPlayerName || lhs.playerName == rhs.playerName)
  fieldCheck = (fieldCheck && (lhs.unknownFields == rhs.unknownFields))
  return fieldCheck
}

public func == (lhs: Pogoprotos.Networking.Requests.Messages.GetSuggestedCodenamesMessage, rhs: Pogoprotos.Networking.Requests.Messages.GetSuggestedCodenamesMessage) -> Bool {
  if (lhs === rhs) {
    return true
  }
  var fieldCheck:Bool = (lhs.hashValue == rhs.hashValue)
  fieldCheck = (fieldCheck && (lhs.unknownFields == rhs.unknownFields))
  return fieldCheck
}

public func == (lhs: Pogoprotos.Networking.Requests.Messages.IncenseEncounterMessage, rhs: Pogoprotos.Networking.Requests.Messages.IncenseEncounterMessage) -> Bool {
  if (lhs === rhs) {
    return true
  }
  var fieldCheck:Bool = (lhs.hashValue == rhs.hashValue)
  fieldCheck = fieldCheck && (lhs.hasEncounterId == rhs.hasEncounterId) && (!lhs.hasEncounterId || lhs.encounterId == rhs.encounterId)
  fieldCheck = fieldCheck && (lhs.hasEncounterLocation == rhs.hasEncounterLocation) && (!lhs.hasEncounterLocation || lhs.encounterLocation == rhs.encounterLocation)
  fieldCheck = (fieldCheck && (lhs.unknownFields == rhs.unknownFields))
  return fieldCheck
}

public func == (lhs: Pogoprotos.Networking.Requests.Messages.LevelUpRewardsMessage, rhs: Pogoprotos.Networking.Requests.Messages.LevelUpRewardsMessage) -> Bool {
  if (lhs === rhs) {
    return true
  }
  var fieldCheck:Bool = (lhs.hashValue == rhs.hashValue)
  fieldCheck = fieldCheck && (lhs.hasLevel == rhs.hasLevel) && (!lhs.hasLevel || lhs.level == rhs.level)
  fieldCheck = (fieldCheck && (lhs.unknownFields == rhs.unknownFields))
  return fieldCheck
}

public func == (lhs: Pogoprotos.Networking.Requests.Messages.MarkTutorialCompleteMessage, rhs: Pogoprotos.Networking.Requests.Messages.MarkTutorialCompleteMessage) -> Bool {
  if (lhs === rhs) {
    return true
  }
  var fieldCheck:Bool = (lhs.hashValue == rhs.hashValue)
  fieldCheck = fieldCheck && (lhs.tutorialsCompleted == rhs.tutorialsCompleted)
  fieldCheck = fieldCheck && (lhs.hasSendMarketingEmails == rhs.hasSendMarketingEmails) && (!lhs.hasSendMarketingEmails || lhs.sendMarketingEmails == rhs.sendMarketingEmails)
  fieldCheck = fieldCheck && (lhs.hasSendPushNotifications == rhs.hasSendPushNotifications) && (!lhs.hasSendPushNotifications || lhs.sendPushNotifications == rhs.sendPushNotifications)
  fieldCheck = (fieldCheck && (lhs.unknownFields == rhs.unknownFields))
  return fieldCheck
}

public func == (lhs: Pogoprotos.Networking.Requests.Messages.NicknamePokemonMessage, rhs: Pogoprotos.Networking.Requests.Messages.NicknamePokemonMessage) -> Bool {
  if (lhs === rhs) {
    return true
  }
  var fieldCheck:Bool = (lhs.hashValue == rhs.hashValue)
  fieldCheck = fieldCheck && (lhs.hasPokemonId == rhs.hasPokemonId) && (!lhs.hasPokemonId || lhs.pokemonId == rhs.pokemonId)
  fieldCheck = fieldCheck && (lhs.hasNickname == rhs.hasNickname) && (!lhs.hasNickname || lhs.nickname == rhs.nickname)
  fieldCheck = (fieldCheck && (lhs.unknownFields == rhs.unknownFields))
  return fieldCheck
}

public func == (lhs: Pogoprotos.Networking.Requests.Messages.PlayerUpdateMessage, rhs: Pogoprotos.Networking.Requests.Messages.PlayerUpdateMessage) -> Bool {
  if (lhs === rhs) {
    return true
  }
  var fieldCheck:Bool = (lhs.hashValue == rhs.hashValue)
  fieldCheck = fieldCheck && (lhs.hasLatitude == rhs.hasLatitude) && (!lhs.hasLatitude || lhs.latitude == rhs.latitude)
  fieldCheck = fieldCheck && (lhs.hasLongitude == rhs.hasLongitude) && (!lhs.hasLongitude || lhs.longitude == rhs.longitude)
  fieldCheck = (fieldCheck && (lhs.unknownFields == rhs.unknownFields))
  return fieldCheck
}

public func == (lhs: Pogoprotos.Networking.Requests.Messages.RecycleInventoryItemMessage, rhs: Pogoprotos.Networking.Requests.Messages.RecycleInventoryItemMessage) -> Bool {
  if (lhs === rhs) {
    return true
  }
  var fieldCheck:Bool = (lhs.hashValue == rhs.hashValue)
  fieldCheck = fieldCheck && (lhs.hasItemId == rhs.hasItemId) && (!lhs.hasItemId || lhs.itemId == rhs.itemId)
  fieldCheck = fieldCheck && (lhs.hasCount == rhs.hasCount) && (!lhs.hasCount || lhs.count == rhs.count)
  fieldCheck = (fieldCheck && (lhs.unknownFields == rhs.unknownFields))
  return fieldCheck
}

public func == (lhs: Pogoprotos.Networking.Requests.Messages.ReleasePokemonMessage, rhs: Pogoprotos.Networking.Requests.Messages.ReleasePokemonMessage) -> Bool {
  if (lhs === rhs) {
    return true
  }
  var fieldCheck:Bool = (lhs.hashValue == rhs.hashValue)
  fieldCheck = fieldCheck && (lhs.hasPokemonId == rhs.hasPokemonId) && (!lhs.hasPokemonId || lhs.pokemonId == rhs.pokemonId)
  fieldCheck = (fieldCheck && (lhs.unknownFields == rhs.unknownFields))
  return fieldCheck
}

public func == (lhs: Pogoprotos.Networking.Requests.Messages.SetAvatarMessage, rhs: Pogoprotos.Networking.Requests.Messages.SetAvatarMessage) -> Bool {
  if (lhs === rhs) {
    return true
  }
  var fieldCheck:Bool = (lhs.hashValue == rhs.hashValue)
  fieldCheck = fieldCheck && (lhs.hasPlayerAvatar == rhs.hasPlayerAvatar) && (!lhs.hasPlayerAvatar || lhs.playerAvatar == rhs.playerAvatar)
  fieldCheck = (fieldCheck && (lhs.unknownFields == rhs.unknownFields))
  return fieldCheck
}

public func == (lhs: Pogoprotos.Networking.Requests.Messages.SetContactSettingsMessage, rhs: Pogoprotos.Networking.Requests.Messages.SetContactSettingsMessage) -> Bool {
  if (lhs === rhs) {
    return true
  }
  var fieldCheck:Bool = (lhs.hashValue == rhs.hashValue)
  fieldCheck = fieldCheck && (lhs.hasContactSettings == rhs.hasContactSettings) && (!lhs.hasContactSettings || lhs.contactSettings == rhs.contactSettings)
  fieldCheck = (fieldCheck && (lhs.unknownFields == rhs.unknownFields))
  return fieldCheck
}

public func == (lhs: Pogoprotos.Networking.Requests.Messages.SetFavoritePokemonMessage, rhs: Pogoprotos.Networking.Requests.Messages.SetFavoritePokemonMessage) -> Bool {
  if (lhs === rhs) {
    return true
  }
  var fieldCheck:Bool = (lhs.hashValue == rhs.hashValue)
  fieldCheck = fieldCheck && (lhs.hasPokemonId == rhs.hasPokemonId) && (!lhs.hasPokemonId || lhs.pokemonId == rhs.pokemonId)
  fieldCheck = fieldCheck && (lhs.hasIsFavorite == rhs.hasIsFavorite) && (!lhs.hasIsFavorite || lhs.isFavorite == rhs.isFavorite)
  fieldCheck = (fieldCheck && (lhs.unknownFields == rhs.unknownFields))
  return fieldCheck
}

public func == (lhs: Pogoprotos.Networking.Requests.Messages.SetPlayerTeamMessage, rhs: Pogoprotos.Networking.Requests.Messages.SetPlayerTeamMessage) -> Bool {
  if (lhs === rhs) {
    return true
  }
  var fieldCheck:Bool = (lhs.hashValue == rhs.hashValue)
  fieldCheck = fieldCheck && (lhs.hasTeam == rhs.hasTeam) && (!lhs.hasTeam || lhs.team == rhs.team)
  fieldCheck = (fieldCheck && (lhs.unknownFields == rhs.unknownFields))
  return fieldCheck
}

public func == (lhs: Pogoprotos.Networking.Requests.Messages.SfidaActionLogMessage, rhs: Pogoprotos.Networking.Requests.Messages.SfidaActionLogMessage) -> Bool {
  if (lhs === rhs) {
    return true
  }
  var fieldCheck:Bool = (lhs.hashValue == rhs.hashValue)
  fieldCheck = (fieldCheck && (lhs.unknownFields == rhs.unknownFields))
  return fieldCheck
}

public func == (lhs: Pogoprotos.Networking.Requests.Messages.StartGymBattleMessage, rhs: Pogoprotos.Networking.Requests.Messages.StartGymBattleMessage) -> Bool {
  if (lhs === rhs) {
    return true
  }
  var fieldCheck:Bool = (lhs.hashValue == rhs.hashValue)
  fieldCheck = fieldCheck && (lhs.hasGymId == rhs.hasGymId) && (!lhs.hasGymId || lhs.gymId == rhs.gymId)
  fieldCheck = fieldCheck && (lhs.attackingPokemonIds == rhs.attackingPokemonIds)
  fieldCheck = fieldCheck && (lhs.hasDefendingPokemonId == rhs.hasDefendingPokemonId) && (!lhs.hasDefendingPokemonId || lhs.defendingPokemonId == rhs.defendingPokemonId)
  fieldCheck = fieldCheck && (lhs.hasPlayerLatitude == rhs.hasPlayerLatitude) && (!lhs.hasPlayerLatitude || lhs.playerLatitude == rhs.playerLatitude)
  fieldCheck = fieldCheck && (lhs.hasPlayerLongitude == rhs.hasPlayerLongitude) && (!lhs.hasPlayerLongitude || lhs.playerLongitude == rhs.playerLongitude)
  fieldCheck = (fieldCheck && (lhs.unknownFields == rhs.unknownFields))
  return fieldCheck
}

public func == (lhs: Pogoprotos.Networking.Requests.Messages.UpgradePokemonMessage, rhs: Pogoprotos.Networking.Requests.Messages.UpgradePokemonMessage) -> Bool {
  if (lhs === rhs) {
    return true
  }
  var fieldCheck:Bool = (lhs.hashValue == rhs.hashValue)
  fieldCheck = fieldCheck && (lhs.hasPokemonId == rhs.hasPokemonId) && (!lhs.hasPokemonId || lhs.pokemonId == rhs.pokemonId)
  fieldCheck = (fieldCheck && (lhs.unknownFields == rhs.unknownFields))
  return fieldCheck
}

public func == (lhs: Pogoprotos.Networking.Requests.Messages.UseIncenseMessage, rhs: Pogoprotos.Networking.Requests.Messages.UseIncenseMessage) -> Bool {
  if (lhs === rhs) {
    return true
  }
  var fieldCheck:Bool = (lhs.hashValue == rhs.hashValue)
  fieldCheck = fieldCheck && (lhs.hasIncenseType == rhs.hasIncenseType) && (!lhs.hasIncenseType || lhs.incenseType == rhs.incenseType)
  fieldCheck = (fieldCheck && (lhs.unknownFields == rhs.unknownFields))
  return fieldCheck
}

public func == (lhs: Pogoprotos.Networking.Requests.Messages.UseItemCaptureMessage, rhs: Pogoprotos.Networking.Requests.Messages.UseItemCaptureMessage) -> Bool {
  if (lhs === rhs) {
    return true
  }
  var fieldCheck:Bool = (lhs.hashValue == rhs.hashValue)
  fieldCheck = fieldCheck && (lhs.hasItemId == rhs.hasItemId) && (!lhs.hasItemId || lhs.itemId == rhs.itemId)
  fieldCheck = fieldCheck && (lhs.hasEncounterId == rhs.hasEncounterId) && (!lhs.hasEncounterId || lhs.encounterId == rhs.encounterId)
  fieldCheck = fieldCheck && (lhs.hasSpawnPointId == rhs.hasSpawnPointId) && (!lhs.hasSpawnPointId || lhs.spawnPointId == rhs.spawnPointId)
  fieldCheck = (fieldCheck && (lhs.unknownFields == rhs.unknownFields))
  return fieldCheck
}

public func == (lhs: Pogoprotos.Networking.Requests.Messages.UseItemEggIncubatorMessage, rhs: Pogoprotos.Networking.Requests.Messages.UseItemEggIncubatorMessage) -> Bool {
  if (lhs === rhs) {
    return true
  }
  var fieldCheck:Bool = (lhs.hashValue == rhs.hashValue)
  fieldCheck = fieldCheck && (lhs.hasItemId == rhs.hasItemId) && (!lhs.hasItemId || lhs.itemId == rhs.itemId)
  fieldCheck = fieldCheck && (lhs.hasPokemonId == rhs.hasPokemonId) && (!lhs.hasPokemonId || lhs.pokemonId == rhs.pokemonId)
  fieldCheck = (fieldCheck && (lhs.unknownFields == rhs.unknownFields))
  return fieldCheck
}

public func == (lhs: Pogoprotos.Networking.Requests.Messages.UseItemGymMessage, rhs: Pogoprotos.Networking.Requests.Messages.UseItemGymMessage) -> Bool {
  if (lhs === rhs) {
    return true
  }
  var fieldCheck:Bool = (lhs.hashValue == rhs.hashValue)
  fieldCheck = fieldCheck && (lhs.hasItemId == rhs.hasItemId) && (!lhs.hasItemId || lhs.itemId == rhs.itemId)
  fieldCheck = fieldCheck && (lhs.hasGymId == rhs.hasGymId) && (!lhs.hasGymId || lhs.gymId == rhs.gymId)
  fieldCheck = fieldCheck && (lhs.hasPlayerLatitude == rhs.hasPlayerLatitude) && (!lhs.hasPlayerLatitude || lhs.playerLatitude == rhs.playerLatitude)
  fieldCheck = fieldCheck && (lhs.hasPlayerLongitude == rhs.hasPlayerLongitude) && (!lhs.hasPlayerLongitude || lhs.playerLongitude == rhs.playerLongitude)
  fieldCheck = (fieldCheck && (lhs.unknownFields == rhs.unknownFields))
  return fieldCheck
}

public func == (lhs: Pogoprotos.Networking.Requests.Messages.UseItemPotionMessage, rhs: Pogoprotos.Networking.Requests.Messages.UseItemPotionMessage) -> Bool {
  if (lhs === rhs) {
    return true
  }
  var fieldCheck:Bool = (lhs.hashValue == rhs.hashValue)
  fieldCheck = fieldCheck && (lhs.hasItemId == rhs.hasItemId) && (!lhs.hasItemId || lhs.itemId == rhs.itemId)
  fieldCheck = fieldCheck && (lhs.hasPokemonId == rhs.hasPokemonId) && (!lhs.hasPokemonId || lhs.pokemonId == rhs.pokemonId)
  fieldCheck = (fieldCheck && (lhs.unknownFields == rhs.unknownFields))
  return fieldCheck
}

public func == (lhs: Pogoprotos.Networking.Requests.Messages.UseItemReviveMessage, rhs: Pogoprotos.Networking.Requests.Messages.UseItemReviveMessage) -> Bool {
  if (lhs === rhs) {
    return true
  }
  var fieldCheck:Bool = (lhs.hashValue == rhs.hashValue)
  fieldCheck = fieldCheck && (lhs.hasItemId == rhs.hasItemId) && (!lhs.hasItemId || lhs.itemId == rhs.itemId)
  fieldCheck = fieldCheck && (lhs.hasPokemonId == rhs.hasPokemonId) && (!lhs.hasPokemonId || lhs.pokemonId == rhs.pokemonId)
  fieldCheck = (fieldCheck && (lhs.unknownFields == rhs.unknownFields))
  return fieldCheck
}

public func == (lhs: Pogoprotos.Networking.Requests.Messages.UseItemXpBoostMessage, rhs: Pogoprotos.Networking.Requests.Messages.UseItemXpBoostMessage) -> Bool {
  if (lhs === rhs) {
    return true
  }
  var fieldCheck:Bool = (lhs.hashValue == rhs.hashValue)
  fieldCheck = fieldCheck && (lhs.hasItemId == rhs.hasItemId) && (!lhs.hasItemId || lhs.itemId == rhs.itemId)
  fieldCheck = (fieldCheck && (lhs.unknownFields == rhs.unknownFields))
  return fieldCheck
}

public extension Pogoprotos.Networking.Requests.Messages {
  public struct PogoprotosNetworkingRequestsMessagesRoot {
    public static var sharedInstance : PogoprotosNetworkingRequestsMessagesRoot {
     struct Static {
         static let instance : PogoprotosNetworkingRequestsMessagesRoot = PogoprotosNetworkingRequestsMessagesRoot()
     }
     return Static.instance
    }
    public var extensionRegistry:ExtensionRegistry

    init() {
      extensionRegistry = ExtensionRegistry()
      registerAllExtensions(extensionRegistry)
      Pogoprotos.Inventory.Item.PogoprotosInventoryItemRoot.sharedInstance.registerAllExtensions(extensionRegistry)
      Pogoprotos.Data.Battle.PogoprotosDataBattleRoot.sharedInstance.registerAllExtensions(extensionRegistry)
      Pogoprotos.Enums.PogoprotosEnumsRoot.sharedInstance.registerAllExtensions(extensionRegistry)
      Pogoprotos.Data.Player.PogoprotosDataPlayerRoot.sharedInstance.registerAllExtensions(extensionRegistry)
    }
    public func registerAllExtensions(registry:ExtensionRegistry) {
    }
  }

  final public class AddFortModifierMessage : GeneratedMessage, GeneratedMessageProtocol {
    public private(set) var modifierType:Pogoprotos.Inventory.Item.ItemId = Pogoprotos.Inventory.Item.ItemId.ItemUnknown
    public private(set) var hasModifierType:Bool = false
    public private(set) var hasFortId:Bool = false
    public private(set) var fortId:String = ""

    public private(set) var hasPlayerLatitude:Bool = false
    public private(set) var playerLatitude:Double = Double(0)

    public private(set) var hasPlayerLongitude:Bool = false
    public private(set) var playerLongitude:Double = Double(0)

    required public init() {
         super.init()
    }
    override public func isInitialized() -> Bool {
     return true
    }
    override public func writeToCodedOutputStream(output:CodedOutputStream) throws {
      if hasModifierType {
        try output.writeEnum(1, value:modifierType.rawValue)
      }
      if hasFortId {
        try output.writeString(2, value:fortId)
      }
      if hasPlayerLatitude {
        try output.writeDouble(3, value:playerLatitude)
      }
      if hasPlayerLongitude {
        try output.writeDouble(4, value:playerLongitude)
      }
      try unknownFields.writeToCodedOutputStream(output)
    }
    override public func serializedSize() -> Int32 {
      var serialize_size:Int32 = memoizedSerializedSize
      if serialize_size != -1 {
       return serialize_size
      }

      serialize_size = 0
      if (hasModifierType) {
        serialize_size += modifierType.rawValue.computeEnumSize(1)
      }
      if hasFortId {
        serialize_size += fortId.computeStringSize(2)
      }
      if hasPlayerLatitude {
        serialize_size += playerLatitude.computeDoubleSize(3)
      }
      if hasPlayerLongitude {
        serialize_size += playerLongitude.computeDoubleSize(4)
      }
      serialize_size += unknownFields.serializedSize()
      memoizedSerializedSize = serialize_size
      return serialize_size
    }
    public class func parseArrayDelimitedFromInputStream(input:NSInputStream) throws -> Array<Pogoprotos.Networking.Requests.Messages.AddFortModifierMessage> {
      var mergedArray = Array<Pogoprotos.Networking.Requests.Messages.AddFortModifierMessage>()
      while let value = try parseFromDelimitedFromInputStream(input) {
        mergedArray += [value]
      }
      return mergedArray
    }
    public class func parseFromDelimitedFromInputStream(input:NSInputStream) throws -> Pogoprotos.Networking.Requests.Messages.AddFortModifierMessage? {
      return try Pogoprotos.Networking.Requests.Messages.AddFortModifierMessage.Builder().mergeDelimitedFromInputStream(input)?.build()
    }
    public class func parseFromData(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.AddFortModifierMessage {
      return try Pogoprotos.Networking.Requests.Messages.AddFortModifierMessage.Builder().mergeFromData(data, extensionRegistry:Pogoprotos.Networking.Requests.Messages.PogoprotosNetworkingRequestsMessagesRoot.sharedInstance.extensionRegistry).build()
    }
    public class func parseFromData(data:NSData, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.AddFortModifierMessage {
      return try Pogoprotos.Networking.Requests.Messages.AddFortModifierMessage.Builder().mergeFromData(data, extensionRegistry:extensionRegistry).build()
    }
    public class func parseFromInputStream(input:NSInputStream) throws -> Pogoprotos.Networking.Requests.Messages.AddFortModifierMessage {
      return try Pogoprotos.Networking.Requests.Messages.AddFortModifierMessage.Builder().mergeFromInputStream(input).build()
    }
    public class func parseFromInputStream(input:NSInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.AddFortModifierMessage {
      return try Pogoprotos.Networking.Requests.Messages.AddFortModifierMessage.Builder().mergeFromInputStream(input, extensionRegistry:extensionRegistry).build()
    }
    public class func parseFromCodedInputStream(input:CodedInputStream) throws -> Pogoprotos.Networking.Requests.Messages.AddFortModifierMessage {
      return try Pogoprotos.Networking.Requests.Messages.AddFortModifierMessage.Builder().mergeFromCodedInputStream(input).build()
    }
    public class func parseFromCodedInputStream(input:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.AddFortModifierMessage {
      return try Pogoprotos.Networking.Requests.Messages.AddFortModifierMessage.Builder().mergeFromCodedInputStream(input, extensionRegistry:extensionRegistry).build()
    }
    public class func getBuilder() -> Pogoprotos.Networking.Requests.Messages.AddFortModifierMessage.Builder {
      return Pogoprotos.Networking.Requests.Messages.AddFortModifierMessage.classBuilder() as! Pogoprotos.Networking.Requests.Messages.AddFortModifierMessage.Builder
    }
    public func getBuilder() -> Pogoprotos.Networking.Requests.Messages.AddFortModifierMessage.Builder {
      return classBuilder() as! Pogoprotos.Networking.Requests.Messages.AddFortModifierMessage.Builder
    }
    override public class func classBuilder() -> MessageBuilder {
      return Pogoprotos.Networking.Requests.Messages.AddFortModifierMessage.Builder()
    }
    override public func classBuilder() -> MessageBuilder {
      return Pogoprotos.Networking.Requests.Messages.AddFortModifierMessage.Builder()
    }
    public func toBuilder() throws -> Pogoprotos.Networking.Requests.Messages.AddFortModifierMessage.Builder {
      return try Pogoprotos.Networking.Requests.Messages.AddFortModifierMessage.builderWithPrototype(self)
    }
    public class func builderWithPrototype(prototype:Pogoprotos.Networking.Requests.Messages.AddFortModifierMessage) throws -> Pogoprotos.Networking.Requests.Messages.AddFortModifierMessage.Builder {
      return try Pogoprotos.Networking.Requests.Messages.AddFortModifierMessage.Builder().mergeFrom(prototype)
    }
    override public func encode() throws -> Dictionary<String,AnyObject> {
      guard isInitialized() else {
        throw ProtocolBuffersError.InvalidProtocolBuffer("Uninitialized Message")
      }

      var jsonMap:Dictionary<String,AnyObject> = Dictionary<String,AnyObject>()
      if hasModifierType {
        jsonMap["modifierType"] = modifierType.toString()
      }
      if hasFortId {
        jsonMap["fortId"] = fortId
      }
      if hasPlayerLatitude {
        jsonMap["playerLatitude"] = NSNumber(double:playerLatitude)
      }
      if hasPlayerLongitude {
        jsonMap["playerLongitude"] = NSNumber(double:playerLongitude)
      }
      return jsonMap
    }
    override class public func decode(jsonMap:Dictionary<String,AnyObject>) throws -> Pogoprotos.Networking.Requests.Messages.AddFortModifierMessage {
      return try Pogoprotos.Networking.Requests.Messages.AddFortModifierMessage.Builder.decodeToBuilder(jsonMap).build()
    }
    override class public func fromJSON(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.AddFortModifierMessage {
      return try Pogoprotos.Networking.Requests.Messages.AddFortModifierMessage.Builder.fromJSONToBuilder(data).build()
    }
    override public func getDescription(indent:String) throws -> String {
      var output = ""
      if (hasModifierType) {
        output += "\(indent) modifierType: \(modifierType.description)\n"
      }
      if hasFortId {
        output += "\(indent) fortId: \(fortId) \n"
      }
      if hasPlayerLatitude {
        output += "\(indent) playerLatitude: \(playerLatitude) \n"
      }
      if hasPlayerLongitude {
        output += "\(indent) playerLongitude: \(playerLongitude) \n"
      }
      output += unknownFields.getDescription(indent)
      return output
    }
    override public var hashValue:Int {
        get {
            var hashCode:Int = 7
            if hasModifierType {
               hashCode = (hashCode &* 31) &+ Int(modifierType.rawValue)
            }
            if hasFortId {
               hashCode = (hashCode &* 31) &+ fortId.hashValue
            }
            if hasPlayerLatitude {
               hashCode = (hashCode &* 31) &+ playerLatitude.hashValue
            }
            if hasPlayerLongitude {
               hashCode = (hashCode &* 31) &+ playerLongitude.hashValue
            }
            hashCode = (hashCode &* 31) &+  unknownFields.hashValue
            return hashCode
        }
    }


    //Meta information declaration start

    override public class func className() -> String {
        return "Pogoprotos.Networking.Requests.Messages.AddFortModifierMessage"
    }
    override public func className() -> String {
        return "Pogoprotos.Networking.Requests.Messages.AddFortModifierMessage"
    }
    override public func classMetaType() -> GeneratedMessage.Type {
        return Pogoprotos.Networking.Requests.Messages.AddFortModifierMessage.self
    }
    //Meta information declaration end

    final public class Builder : GeneratedMessageBuilder {
      private var builderResult:Pogoprotos.Networking.Requests.Messages.AddFortModifierMessage = Pogoprotos.Networking.Requests.Messages.AddFortModifierMessage()
      public func getMessage() -> Pogoprotos.Networking.Requests.Messages.AddFortModifierMessage {
          return builderResult
      }

      required override public init () {
         super.init()
      }
        public var hasModifierType:Bool{
            get {
                return builderResult.hasModifierType
            }
        }
        public var modifierType:Pogoprotos.Inventory.Item.ItemId {
            get {
                return builderResult.modifierType
            }
            set (value) {
                builderResult.hasModifierType = true
                builderResult.modifierType = value
            }
        }
        public func setModifierType(value:Pogoprotos.Inventory.Item.ItemId) -> Pogoprotos.Networking.Requests.Messages.AddFortModifierMessage.Builder {
          self.modifierType = value
          return self
        }
        public func clearModifierType() -> Pogoprotos.Networking.Requests.Messages.AddFortModifierMessage.Builder {
           builderResult.hasModifierType = false
           builderResult.modifierType = .ItemUnknown
           return self
        }
      public var hasFortId:Bool {
           get {
                return builderResult.hasFortId
           }
      }
      public var fortId:String {
           get {
                return builderResult.fortId
           }
           set (value) {
               builderResult.hasFortId = true
               builderResult.fortId = value
           }
      }
      public func setFortId(value:String) -> Pogoprotos.Networking.Requests.Messages.AddFortModifierMessage.Builder {
        self.fortId = value
        return self
      }
      public func clearFortId() -> Pogoprotos.Networking.Requests.Messages.AddFortModifierMessage.Builder{
           builderResult.hasFortId = false
           builderResult.fortId = ""
           return self
      }
      public var hasPlayerLatitude:Bool {
           get {
                return builderResult.hasPlayerLatitude
           }
      }
      public var playerLatitude:Double {
           get {
                return builderResult.playerLatitude
           }
           set (value) {
               builderResult.hasPlayerLatitude = true
               builderResult.playerLatitude = value
           }
      }
      public func setPlayerLatitude(value:Double) -> Pogoprotos.Networking.Requests.Messages.AddFortModifierMessage.Builder {
        self.playerLatitude = value
        return self
      }
      public func clearPlayerLatitude() -> Pogoprotos.Networking.Requests.Messages.AddFortModifierMessage.Builder{
           builderResult.hasPlayerLatitude = false
           builderResult.playerLatitude = Double(0)
           return self
      }
      public var hasPlayerLongitude:Bool {
           get {
                return builderResult.hasPlayerLongitude
           }
      }
      public var playerLongitude:Double {
           get {
                return builderResult.playerLongitude
           }
           set (value) {
               builderResult.hasPlayerLongitude = true
               builderResult.playerLongitude = value
           }
      }
      public func setPlayerLongitude(value:Double) -> Pogoprotos.Networking.Requests.Messages.AddFortModifierMessage.Builder {
        self.playerLongitude = value
        return self
      }
      public func clearPlayerLongitude() -> Pogoprotos.Networking.Requests.Messages.AddFortModifierMessage.Builder{
           builderResult.hasPlayerLongitude = false
           builderResult.playerLongitude = Double(0)
           return self
      }
      override public var internalGetResult:GeneratedMessage {
           get {
              return builderResult
           }
      }
      override public func clear() -> Pogoprotos.Networking.Requests.Messages.AddFortModifierMessage.Builder {
        builderResult = Pogoprotos.Networking.Requests.Messages.AddFortModifierMessage()
        return self
      }
      override public func clone() throws -> Pogoprotos.Networking.Requests.Messages.AddFortModifierMessage.Builder {
        return try Pogoprotos.Networking.Requests.Messages.AddFortModifierMessage.builderWithPrototype(builderResult)
      }
      override public func build() throws -> Pogoprotos.Networking.Requests.Messages.AddFortModifierMessage {
           try checkInitialized()
           return buildPartial()
      }
      public func buildPartial() -> Pogoprotos.Networking.Requests.Messages.AddFortModifierMessage {
        let returnMe:Pogoprotos.Networking.Requests.Messages.AddFortModifierMessage = builderResult
        return returnMe
      }
      public func mergeFrom(other:Pogoprotos.Networking.Requests.Messages.AddFortModifierMessage) throws -> Pogoprotos.Networking.Requests.Messages.AddFortModifierMessage.Builder {
        if other == Pogoprotos.Networking.Requests.Messages.AddFortModifierMessage() {
         return self
        }
        if other.hasModifierType {
             modifierType = other.modifierType
        }
        if other.hasFortId {
             fortId = other.fortId
        }
        if other.hasPlayerLatitude {
             playerLatitude = other.playerLatitude
        }
        if other.hasPlayerLongitude {
             playerLongitude = other.playerLongitude
        }
        try mergeUnknownFields(other.unknownFields)
        return self
      }
      override public func mergeFromCodedInputStream(input:CodedInputStream) throws -> Pogoprotos.Networking.Requests.Messages.AddFortModifierMessage.Builder {
           return try mergeFromCodedInputStream(input, extensionRegistry:ExtensionRegistry())
      }
      override public func mergeFromCodedInputStream(input:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.AddFortModifierMessage.Builder {
        let unknownFieldsBuilder:UnknownFieldSet.Builder = try UnknownFieldSet.builderWithUnknownFields(self.unknownFields)
        while (true) {
          let protobufTag = try input.readTag()
          switch protobufTag {
          case 0: 
            self.unknownFields = try unknownFieldsBuilder.build()
            return self

          case 8:
            let valueIntmodifierType = try input.readEnum()
            if let enumsmodifierType = Pogoprotos.Inventory.Item.ItemId(rawValue:valueIntmodifierType){
                 modifierType = enumsmodifierType
            } else {
                 try unknownFieldsBuilder.mergeVarintField(1, value:Int64(valueIntmodifierType))
            }

          case 18:
            fortId = try input.readString()

          case 25:
            playerLatitude = try input.readDouble()

          case 33:
            playerLongitude = try input.readDouble()

          default:
            if (!(try parseUnknownField(input,unknownFields:unknownFieldsBuilder, extensionRegistry:extensionRegistry, tag:protobufTag))) {
               unknownFields = try unknownFieldsBuilder.build()
               return self
            }
          }
        }
      }
      override class public func decodeToBuilder(jsonMap:Dictionary<String,AnyObject>) throws -> Pogoprotos.Networking.Requests.Messages.AddFortModifierMessage.Builder {
        let resultDecodedBuilder = Pogoprotos.Networking.Requests.Messages.AddFortModifierMessage.Builder()
        if let jsonValueModifierType = jsonMap["modifierType"] as? String {
          resultDecodedBuilder.modifierType = try Pogoprotos.Inventory.Item.ItemId.fromString(jsonValueModifierType)
        }
        if let jsonValueFortId = jsonMap["fortId"] as? String {
          resultDecodedBuilder.fortId = jsonValueFortId
        }
        if let jsonValuePlayerLatitude = jsonMap["playerLatitude"] as? NSNumber {
          resultDecodedBuilder.playerLatitude = jsonValuePlayerLatitude.doubleValue
        }
        if let jsonValuePlayerLongitude = jsonMap["playerLongitude"] as? NSNumber {
          resultDecodedBuilder.playerLongitude = jsonValuePlayerLongitude.doubleValue
        }
        return resultDecodedBuilder
      }
      override class public func fromJSONToBuilder(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.AddFortModifierMessage.Builder {
        let jsonData = try NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions(rawValue: 0))
        guard let jsDataCast = jsonData as? Dictionary<String,AnyObject> else {
          throw ProtocolBuffersError.InvalidProtocolBuffer("Invalid JSON data")
        }
        return try Pogoprotos.Networking.Requests.Messages.AddFortModifierMessage.Builder.decodeToBuilder(jsDataCast)
      }
    }

  }

  final public class AttackGymMessage : GeneratedMessage, GeneratedMessageProtocol {
    public private(set) var hasGymId:Bool = false
    public private(set) var gymId:String = ""

    public private(set) var hasBattleId:Bool = false
    public private(set) var battleId:String = ""

    public private(set) var attackActions:Array<Pogoprotos.Data.Battle.BattleAction>  = Array<Pogoprotos.Data.Battle.BattleAction>()
    public private(set) var hasLastRetrievedActions:Bool = false
    public private(set) var lastRetrievedActions:Pogoprotos.Data.Battle.BattleAction!
    public private(set) var hasPlayerLatitude:Bool = false
    public private(set) var playerLatitude:Double = Double(0)

    public private(set) var hasPlayerLongitude:Bool = false
    public private(set) var playerLongitude:Double = Double(0)

    required public init() {
         super.init()
    }
    override public func isInitialized() -> Bool {
     return true
    }
    override public func writeToCodedOutputStream(output:CodedOutputStream) throws {
      if hasGymId {
        try output.writeString(1, value:gymId)
      }
      if hasBattleId {
        try output.writeString(2, value:battleId)
      }
      for oneElementAttackActions in attackActions {
          try output.writeMessage(3, value:oneElementAttackActions)
      }
      if hasLastRetrievedActions {
        try output.writeMessage(4, value:lastRetrievedActions)
      }
      if hasPlayerLatitude {
        try output.writeDouble(5, value:playerLatitude)
      }
      if hasPlayerLongitude {
        try output.writeDouble(6, value:playerLongitude)
      }
      try unknownFields.writeToCodedOutputStream(output)
    }
    override public func serializedSize() -> Int32 {
      var serialize_size:Int32 = memoizedSerializedSize
      if serialize_size != -1 {
       return serialize_size
      }

      serialize_size = 0
      if hasGymId {
        serialize_size += gymId.computeStringSize(1)
      }
      if hasBattleId {
        serialize_size += battleId.computeStringSize(2)
      }
      for oneElementAttackActions in attackActions {
          serialize_size += oneElementAttackActions.computeMessageSize(3)
      }
      if hasLastRetrievedActions {
          if let varSizelastRetrievedActions = lastRetrievedActions?.computeMessageSize(4) {
              serialize_size += varSizelastRetrievedActions
          }
      }
      if hasPlayerLatitude {
        serialize_size += playerLatitude.computeDoubleSize(5)
      }
      if hasPlayerLongitude {
        serialize_size += playerLongitude.computeDoubleSize(6)
      }
      serialize_size += unknownFields.serializedSize()
      memoizedSerializedSize = serialize_size
      return serialize_size
    }
    public class func parseArrayDelimitedFromInputStream(input:NSInputStream) throws -> Array<Pogoprotos.Networking.Requests.Messages.AttackGymMessage> {
      var mergedArray = Array<Pogoprotos.Networking.Requests.Messages.AttackGymMessage>()
      while let value = try parseFromDelimitedFromInputStream(input) {
        mergedArray += [value]
      }
      return mergedArray
    }
    public class func parseFromDelimitedFromInputStream(input:NSInputStream) throws -> Pogoprotos.Networking.Requests.Messages.AttackGymMessage? {
      return try Pogoprotos.Networking.Requests.Messages.AttackGymMessage.Builder().mergeDelimitedFromInputStream(input)?.build()
    }
    public class func parseFromData(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.AttackGymMessage {
      return try Pogoprotos.Networking.Requests.Messages.AttackGymMessage.Builder().mergeFromData(data, extensionRegistry:Pogoprotos.Networking.Requests.Messages.PogoprotosNetworkingRequestsMessagesRoot.sharedInstance.extensionRegistry).build()
    }
    public class func parseFromData(data:NSData, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.AttackGymMessage {
      return try Pogoprotos.Networking.Requests.Messages.AttackGymMessage.Builder().mergeFromData(data, extensionRegistry:extensionRegistry).build()
    }
    public class func parseFromInputStream(input:NSInputStream) throws -> Pogoprotos.Networking.Requests.Messages.AttackGymMessage {
      return try Pogoprotos.Networking.Requests.Messages.AttackGymMessage.Builder().mergeFromInputStream(input).build()
    }
    public class func parseFromInputStream(input:NSInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.AttackGymMessage {
      return try Pogoprotos.Networking.Requests.Messages.AttackGymMessage.Builder().mergeFromInputStream(input, extensionRegistry:extensionRegistry).build()
    }
    public class func parseFromCodedInputStream(input:CodedInputStream) throws -> Pogoprotos.Networking.Requests.Messages.AttackGymMessage {
      return try Pogoprotos.Networking.Requests.Messages.AttackGymMessage.Builder().mergeFromCodedInputStream(input).build()
    }
    public class func parseFromCodedInputStream(input:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.AttackGymMessage {
      return try Pogoprotos.Networking.Requests.Messages.AttackGymMessage.Builder().mergeFromCodedInputStream(input, extensionRegistry:extensionRegistry).build()
    }
    public class func getBuilder() -> Pogoprotos.Networking.Requests.Messages.AttackGymMessage.Builder {
      return Pogoprotos.Networking.Requests.Messages.AttackGymMessage.classBuilder() as! Pogoprotos.Networking.Requests.Messages.AttackGymMessage.Builder
    }
    public func getBuilder() -> Pogoprotos.Networking.Requests.Messages.AttackGymMessage.Builder {
      return classBuilder() as! Pogoprotos.Networking.Requests.Messages.AttackGymMessage.Builder
    }
    override public class func classBuilder() -> MessageBuilder {
      return Pogoprotos.Networking.Requests.Messages.AttackGymMessage.Builder()
    }
    override public func classBuilder() -> MessageBuilder {
      return Pogoprotos.Networking.Requests.Messages.AttackGymMessage.Builder()
    }
    public func toBuilder() throws -> Pogoprotos.Networking.Requests.Messages.AttackGymMessage.Builder {
      return try Pogoprotos.Networking.Requests.Messages.AttackGymMessage.builderWithPrototype(self)
    }
    public class func builderWithPrototype(prototype:Pogoprotos.Networking.Requests.Messages.AttackGymMessage) throws -> Pogoprotos.Networking.Requests.Messages.AttackGymMessage.Builder {
      return try Pogoprotos.Networking.Requests.Messages.AttackGymMessage.Builder().mergeFrom(prototype)
    }
    override public func encode() throws -> Dictionary<String,AnyObject> {
      guard isInitialized() else {
        throw ProtocolBuffersError.InvalidProtocolBuffer("Uninitialized Message")
      }

      var jsonMap:Dictionary<String,AnyObject> = Dictionary<String,AnyObject>()
      if hasGymId {
        jsonMap["gymId"] = gymId
      }
      if hasBattleId {
        jsonMap["battleId"] = battleId
      }
      if !attackActions.isEmpty {
        var jsonArrayAttackActions:Array<Dictionary<String,AnyObject>> = []
          for oneValueAttackActions in attackActions {
            let ecodedMessageAttackActions = try oneValueAttackActions.encode()
            jsonArrayAttackActions += [ecodedMessageAttackActions]
          }
        jsonMap["attackActions"] = jsonArrayAttackActions
      }
      if hasLastRetrievedActions {
        jsonMap["lastRetrievedActions"] = try lastRetrievedActions.encode()
      }
      if hasPlayerLatitude {
        jsonMap["playerLatitude"] = NSNumber(double:playerLatitude)
      }
      if hasPlayerLongitude {
        jsonMap["playerLongitude"] = NSNumber(double:playerLongitude)
      }
      return jsonMap
    }
    override class public func decode(jsonMap:Dictionary<String,AnyObject>) throws -> Pogoprotos.Networking.Requests.Messages.AttackGymMessage {
      return try Pogoprotos.Networking.Requests.Messages.AttackGymMessage.Builder.decodeToBuilder(jsonMap).build()
    }
    override class public func fromJSON(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.AttackGymMessage {
      return try Pogoprotos.Networking.Requests.Messages.AttackGymMessage.Builder.fromJSONToBuilder(data).build()
    }
    override public func getDescription(indent:String) throws -> String {
      var output = ""
      if hasGymId {
        output += "\(indent) gymId: \(gymId) \n"
      }
      if hasBattleId {
        output += "\(indent) battleId: \(battleId) \n"
      }
      var attackActionsElementIndex:Int = 0
      for oneElementAttackActions in attackActions {
          output += "\(indent) attackActions[\(attackActionsElementIndex)] {\n"
          output += try oneElementAttackActions.getDescription("\(indent)  ")
          output += "\(indent)}\n"
          attackActionsElementIndex += 1
      }
      if hasLastRetrievedActions {
        output += "\(indent) lastRetrievedActions {\n"
        if let outDescLastRetrievedActions = lastRetrievedActions {
          output += try outDescLastRetrievedActions.getDescription("\(indent)  ")
        }
        output += "\(indent) }\n"
      }
      if hasPlayerLatitude {
        output += "\(indent) playerLatitude: \(playerLatitude) \n"
      }
      if hasPlayerLongitude {
        output += "\(indent) playerLongitude: \(playerLongitude) \n"
      }
      output += unknownFields.getDescription(indent)
      return output
    }
    override public var hashValue:Int {
        get {
            var hashCode:Int = 7
            if hasGymId {
               hashCode = (hashCode &* 31) &+ gymId.hashValue
            }
            if hasBattleId {
               hashCode = (hashCode &* 31) &+ battleId.hashValue
            }
            for oneElementAttackActions in attackActions {
                hashCode = (hashCode &* 31) &+ oneElementAttackActions.hashValue
            }
            if hasLastRetrievedActions {
                if let hashValuelastRetrievedActions = lastRetrievedActions?.hashValue {
                    hashCode = (hashCode &* 31) &+ hashValuelastRetrievedActions
                }
            }
            if hasPlayerLatitude {
               hashCode = (hashCode &* 31) &+ playerLatitude.hashValue
            }
            if hasPlayerLongitude {
               hashCode = (hashCode &* 31) &+ playerLongitude.hashValue
            }
            hashCode = (hashCode &* 31) &+  unknownFields.hashValue
            return hashCode
        }
    }


    //Meta information declaration start

    override public class func className() -> String {
        return "Pogoprotos.Networking.Requests.Messages.AttackGymMessage"
    }
    override public func className() -> String {
        return "Pogoprotos.Networking.Requests.Messages.AttackGymMessage"
    }
    override public func classMetaType() -> GeneratedMessage.Type {
        return Pogoprotos.Networking.Requests.Messages.AttackGymMessage.self
    }
    //Meta information declaration end

    final public class Builder : GeneratedMessageBuilder {
      private var builderResult:Pogoprotos.Networking.Requests.Messages.AttackGymMessage = Pogoprotos.Networking.Requests.Messages.AttackGymMessage()
      public func getMessage() -> Pogoprotos.Networking.Requests.Messages.AttackGymMessage {
          return builderResult
      }

      required override public init () {
         super.init()
      }
      public var hasGymId:Bool {
           get {
                return builderResult.hasGymId
           }
      }
      public var gymId:String {
           get {
                return builderResult.gymId
           }
           set (value) {
               builderResult.hasGymId = true
               builderResult.gymId = value
           }
      }
      public func setGymId(value:String) -> Pogoprotos.Networking.Requests.Messages.AttackGymMessage.Builder {
        self.gymId = value
        return self
      }
      public func clearGymId() -> Pogoprotos.Networking.Requests.Messages.AttackGymMessage.Builder{
           builderResult.hasGymId = false
           builderResult.gymId = ""
           return self
      }
      public var hasBattleId:Bool {
           get {
                return builderResult.hasBattleId
           }
      }
      public var battleId:String {
           get {
                return builderResult.battleId
           }
           set (value) {
               builderResult.hasBattleId = true
               builderResult.battleId = value
           }
      }
      public func setBattleId(value:String) -> Pogoprotos.Networking.Requests.Messages.AttackGymMessage.Builder {
        self.battleId = value
        return self
      }
      public func clearBattleId() -> Pogoprotos.Networking.Requests.Messages.AttackGymMessage.Builder{
           builderResult.hasBattleId = false
           builderResult.battleId = ""
           return self
      }
      public var attackActions:Array<Pogoprotos.Data.Battle.BattleAction> {
           get {
               return builderResult.attackActions
           }
           set (value) {
               builderResult.attackActions = value
           }
      }
      public func setAttackActions(value:Array<Pogoprotos.Data.Battle.BattleAction>) -> Pogoprotos.Networking.Requests.Messages.AttackGymMessage.Builder {
        self.attackActions = value
        return self
      }
      public func clearAttackActions() -> Pogoprotos.Networking.Requests.Messages.AttackGymMessage.Builder {
        builderResult.attackActions.removeAll(keepCapacity: false)
        return self
      }
      public var hasLastRetrievedActions:Bool {
           get {
               return builderResult.hasLastRetrievedActions
           }
      }
      public var lastRetrievedActions:Pogoprotos.Data.Battle.BattleAction! {
           get {
               if lastRetrievedActionsBuilder_ != nil {
                  builderResult.lastRetrievedActions = lastRetrievedActionsBuilder_.getMessage()
               }
               return builderResult.lastRetrievedActions
           }
           set (value) {
               builderResult.hasLastRetrievedActions = true
               builderResult.lastRetrievedActions = value
           }
      }
      private var lastRetrievedActionsBuilder_:Pogoprotos.Data.Battle.BattleAction.Builder! {
           didSet {
              builderResult.hasLastRetrievedActions = true
           }
      }
      public func getLastRetrievedActionsBuilder() -> Pogoprotos.Data.Battle.BattleAction.Builder {
        if lastRetrievedActionsBuilder_ == nil {
           lastRetrievedActionsBuilder_ = Pogoprotos.Data.Battle.BattleAction.Builder()
           builderResult.lastRetrievedActions = lastRetrievedActionsBuilder_.getMessage()
           if lastRetrievedActions != nil {
              try! lastRetrievedActionsBuilder_.mergeFrom(lastRetrievedActions)
           }
        }
        return lastRetrievedActionsBuilder_
      }
      public func setLastRetrievedActions(value:Pogoprotos.Data.Battle.BattleAction!) -> Pogoprotos.Networking.Requests.Messages.AttackGymMessage.Builder {
        self.lastRetrievedActions = value
        return self
      }
      public func mergeLastRetrievedActions(value:Pogoprotos.Data.Battle.BattleAction) throws -> Pogoprotos.Networking.Requests.Messages.AttackGymMessage.Builder {
        if builderResult.hasLastRetrievedActions {
          builderResult.lastRetrievedActions = try Pogoprotos.Data.Battle.BattleAction.builderWithPrototype(builderResult.lastRetrievedActions).mergeFrom(value).buildPartial()
        } else {
          builderResult.lastRetrievedActions = value
        }
        builderResult.hasLastRetrievedActions = true
        return self
      }
      public func clearLastRetrievedActions() -> Pogoprotos.Networking.Requests.Messages.AttackGymMessage.Builder {
        lastRetrievedActionsBuilder_ = nil
        builderResult.hasLastRetrievedActions = false
        builderResult.lastRetrievedActions = nil
        return self
      }
      public var hasPlayerLatitude:Bool {
           get {
                return builderResult.hasPlayerLatitude
           }
      }
      public var playerLatitude:Double {
           get {
                return builderResult.playerLatitude
           }
           set (value) {
               builderResult.hasPlayerLatitude = true
               builderResult.playerLatitude = value
           }
      }
      public func setPlayerLatitude(value:Double) -> Pogoprotos.Networking.Requests.Messages.AttackGymMessage.Builder {
        self.playerLatitude = value
        return self
      }
      public func clearPlayerLatitude() -> Pogoprotos.Networking.Requests.Messages.AttackGymMessage.Builder{
           builderResult.hasPlayerLatitude = false
           builderResult.playerLatitude = Double(0)
           return self
      }
      public var hasPlayerLongitude:Bool {
           get {
                return builderResult.hasPlayerLongitude
           }
      }
      public var playerLongitude:Double {
           get {
                return builderResult.playerLongitude
           }
           set (value) {
               builderResult.hasPlayerLongitude = true
               builderResult.playerLongitude = value
           }
      }
      public func setPlayerLongitude(value:Double) -> Pogoprotos.Networking.Requests.Messages.AttackGymMessage.Builder {
        self.playerLongitude = value
        return self
      }
      public func clearPlayerLongitude() -> Pogoprotos.Networking.Requests.Messages.AttackGymMessage.Builder{
           builderResult.hasPlayerLongitude = false
           builderResult.playerLongitude = Double(0)
           return self
      }
      override public var internalGetResult:GeneratedMessage {
           get {
              return builderResult
           }
      }
      override public func clear() -> Pogoprotos.Networking.Requests.Messages.AttackGymMessage.Builder {
        builderResult = Pogoprotos.Networking.Requests.Messages.AttackGymMessage()
        return self
      }
      override public func clone() throws -> Pogoprotos.Networking.Requests.Messages.AttackGymMessage.Builder {
        return try Pogoprotos.Networking.Requests.Messages.AttackGymMessage.builderWithPrototype(builderResult)
      }
      override public func build() throws -> Pogoprotos.Networking.Requests.Messages.AttackGymMessage {
           try checkInitialized()
           return buildPartial()
      }
      public func buildPartial() -> Pogoprotos.Networking.Requests.Messages.AttackGymMessage {
        let returnMe:Pogoprotos.Networking.Requests.Messages.AttackGymMessage = builderResult
        return returnMe
      }
      public func mergeFrom(other:Pogoprotos.Networking.Requests.Messages.AttackGymMessage) throws -> Pogoprotos.Networking.Requests.Messages.AttackGymMessage.Builder {
        if other == Pogoprotos.Networking.Requests.Messages.AttackGymMessage() {
         return self
        }
        if other.hasGymId {
             gymId = other.gymId
        }
        if other.hasBattleId {
             battleId = other.battleId
        }
        if !other.attackActions.isEmpty  {
           builderResult.attackActions += other.attackActions
        }
        if (other.hasLastRetrievedActions) {
            try mergeLastRetrievedActions(other.lastRetrievedActions)
        }
        if other.hasPlayerLatitude {
             playerLatitude = other.playerLatitude
        }
        if other.hasPlayerLongitude {
             playerLongitude = other.playerLongitude
        }
        try mergeUnknownFields(other.unknownFields)
        return self
      }
      override public func mergeFromCodedInputStream(input:CodedInputStream) throws -> Pogoprotos.Networking.Requests.Messages.AttackGymMessage.Builder {
           return try mergeFromCodedInputStream(input, extensionRegistry:ExtensionRegistry())
      }
      override public func mergeFromCodedInputStream(input:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.AttackGymMessage.Builder {
        let unknownFieldsBuilder:UnknownFieldSet.Builder = try UnknownFieldSet.builderWithUnknownFields(self.unknownFields)
        while (true) {
          let protobufTag = try input.readTag()
          switch protobufTag {
          case 0: 
            self.unknownFields = try unknownFieldsBuilder.build()
            return self

          case 10:
            gymId = try input.readString()

          case 18:
            battleId = try input.readString()

          case 26:
            let subBuilder = Pogoprotos.Data.Battle.BattleAction.Builder()
            try input.readMessage(subBuilder,extensionRegistry:extensionRegistry)
            attackActions += [subBuilder.buildPartial()]

          case 34:
            let subBuilder:Pogoprotos.Data.Battle.BattleAction.Builder = Pogoprotos.Data.Battle.BattleAction.Builder()
            if hasLastRetrievedActions {
              try subBuilder.mergeFrom(lastRetrievedActions)
            }
            try input.readMessage(subBuilder, extensionRegistry:extensionRegistry)
            lastRetrievedActions = subBuilder.buildPartial()

          case 41:
            playerLatitude = try input.readDouble()

          case 49:
            playerLongitude = try input.readDouble()

          default:
            if (!(try parseUnknownField(input,unknownFields:unknownFieldsBuilder, extensionRegistry:extensionRegistry, tag:protobufTag))) {
               unknownFields = try unknownFieldsBuilder.build()
               return self
            }
          }
        }
      }
      override class public func decodeToBuilder(jsonMap:Dictionary<String,AnyObject>) throws -> Pogoprotos.Networking.Requests.Messages.AttackGymMessage.Builder {
        let resultDecodedBuilder = Pogoprotos.Networking.Requests.Messages.AttackGymMessage.Builder()
        if let jsonValueGymId = jsonMap["gymId"] as? String {
          resultDecodedBuilder.gymId = jsonValueGymId
        }
        if let jsonValueBattleId = jsonMap["battleId"] as? String {
          resultDecodedBuilder.battleId = jsonValueBattleId
        }
        if let jsonValueAttackActions = jsonMap["attackActions"] as? Array<Dictionary<String,AnyObject>> {
          var jsonArrayAttackActions:Array<Pogoprotos.Data.Battle.BattleAction> = []
          for oneValueAttackActions in jsonValueAttackActions {
            let messageFromStringAttackActions = try Pogoprotos.Data.Battle.BattleAction.Builder.decodeToBuilder(oneValueAttackActions).build()

            jsonArrayAttackActions += [messageFromStringAttackActions]
          }
          resultDecodedBuilder.attackActions = jsonArrayAttackActions
        }
        if let jsonValueLastRetrievedActions = jsonMap["lastRetrievedActions"] as? Dictionary<String,AnyObject> {
          resultDecodedBuilder.lastRetrievedActions = try Pogoprotos.Data.Battle.BattleAction.Builder.decodeToBuilder(jsonValueLastRetrievedActions).build()

        }
        if let jsonValuePlayerLatitude = jsonMap["playerLatitude"] as? NSNumber {
          resultDecodedBuilder.playerLatitude = jsonValuePlayerLatitude.doubleValue
        }
        if let jsonValuePlayerLongitude = jsonMap["playerLongitude"] as? NSNumber {
          resultDecodedBuilder.playerLongitude = jsonValuePlayerLongitude.doubleValue
        }
        return resultDecodedBuilder
      }
      override class public func fromJSONToBuilder(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.AttackGymMessage.Builder {
        let jsonData = try NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions(rawValue: 0))
        guard let jsDataCast = jsonData as? Dictionary<String,AnyObject> else {
          throw ProtocolBuffersError.InvalidProtocolBuffer("Invalid JSON data")
        }
        return try Pogoprotos.Networking.Requests.Messages.AttackGymMessage.Builder.decodeToBuilder(jsDataCast)
      }
    }

  }

  final public class CatchPokemonMessage : GeneratedMessage, GeneratedMessageProtocol {
    public private(set) var hasEncounterId:Bool = false
    public private(set) var encounterId:UInt64 = UInt64(0)

    public private(set) var pokeball:Pogoprotos.Inventory.Item.ItemId = Pogoprotos.Inventory.Item.ItemId.ItemUnknown
    public private(set) var hasPokeball:Bool = false
    public private(set) var hasNormalizedReticleSize:Bool = false
    public private(set) var normalizedReticleSize:Double = Double(0)

    public private(set) var hasSpawnPointId:Bool = false
    public private(set) var spawnPointId:String = ""

    public private(set) var hasHitPokemon:Bool = false
    public private(set) var hitPokemon:Bool = false

    public private(set) var hasSpinModifier:Bool = false
    public private(set) var spinModifier:Double = Double(0)

    public private(set) var hasNormalizedHitPosition:Bool = false
    public private(set) var normalizedHitPosition:Double = Double(0)

    required public init() {
         super.init()
    }
    override public func isInitialized() -> Bool {
     return true
    }
    override public func writeToCodedOutputStream(output:CodedOutputStream) throws {
      if hasEncounterId {
        try output.writeFixed64(1, value:encounterId)
      }
      if hasPokeball {
        try output.writeEnum(2, value:pokeball.rawValue)
      }
      if hasNormalizedReticleSize {
        try output.writeDouble(3, value:normalizedReticleSize)
      }
      if hasSpawnPointId {
        try output.writeString(4, value:spawnPointId)
      }
      if hasHitPokemon {
        try output.writeBool(5, value:hitPokemon)
      }
      if hasSpinModifier {
        try output.writeDouble(6, value:spinModifier)
      }
      if hasNormalizedHitPosition {
        try output.writeDouble(7, value:normalizedHitPosition)
      }
      try unknownFields.writeToCodedOutputStream(output)
    }
    override public func serializedSize() -> Int32 {
      var serialize_size:Int32 = memoizedSerializedSize
      if serialize_size != -1 {
       return serialize_size
      }

      serialize_size = 0
      if hasEncounterId {
        serialize_size += encounterId.computeFixed64Size(1)
      }
      if (hasPokeball) {
        serialize_size += pokeball.rawValue.computeEnumSize(2)
      }
      if hasNormalizedReticleSize {
        serialize_size += normalizedReticleSize.computeDoubleSize(3)
      }
      if hasSpawnPointId {
        serialize_size += spawnPointId.computeStringSize(4)
      }
      if hasHitPokemon {
        serialize_size += hitPokemon.computeBoolSize(5)
      }
      if hasSpinModifier {
        serialize_size += spinModifier.computeDoubleSize(6)
      }
      if hasNormalizedHitPosition {
        serialize_size += normalizedHitPosition.computeDoubleSize(7)
      }
      serialize_size += unknownFields.serializedSize()
      memoizedSerializedSize = serialize_size
      return serialize_size
    }
    public class func parseArrayDelimitedFromInputStream(input:NSInputStream) throws -> Array<Pogoprotos.Networking.Requests.Messages.CatchPokemonMessage> {
      var mergedArray = Array<Pogoprotos.Networking.Requests.Messages.CatchPokemonMessage>()
      while let value = try parseFromDelimitedFromInputStream(input) {
        mergedArray += [value]
      }
      return mergedArray
    }
    public class func parseFromDelimitedFromInputStream(input:NSInputStream) throws -> Pogoprotos.Networking.Requests.Messages.CatchPokemonMessage? {
      return try Pogoprotos.Networking.Requests.Messages.CatchPokemonMessage.Builder().mergeDelimitedFromInputStream(input)?.build()
    }
    public class func parseFromData(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.CatchPokemonMessage {
      return try Pogoprotos.Networking.Requests.Messages.CatchPokemonMessage.Builder().mergeFromData(data, extensionRegistry:Pogoprotos.Networking.Requests.Messages.PogoprotosNetworkingRequestsMessagesRoot.sharedInstance.extensionRegistry).build()
    }
    public class func parseFromData(data:NSData, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.CatchPokemonMessage {
      return try Pogoprotos.Networking.Requests.Messages.CatchPokemonMessage.Builder().mergeFromData(data, extensionRegistry:extensionRegistry).build()
    }
    public class func parseFromInputStream(input:NSInputStream) throws -> Pogoprotos.Networking.Requests.Messages.CatchPokemonMessage {
      return try Pogoprotos.Networking.Requests.Messages.CatchPokemonMessage.Builder().mergeFromInputStream(input).build()
    }
    public class func parseFromInputStream(input:NSInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.CatchPokemonMessage {
      return try Pogoprotos.Networking.Requests.Messages.CatchPokemonMessage.Builder().mergeFromInputStream(input, extensionRegistry:extensionRegistry).build()
    }
    public class func parseFromCodedInputStream(input:CodedInputStream) throws -> Pogoprotos.Networking.Requests.Messages.CatchPokemonMessage {
      return try Pogoprotos.Networking.Requests.Messages.CatchPokemonMessage.Builder().mergeFromCodedInputStream(input).build()
    }
    public class func parseFromCodedInputStream(input:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.CatchPokemonMessage {
      return try Pogoprotos.Networking.Requests.Messages.CatchPokemonMessage.Builder().mergeFromCodedInputStream(input, extensionRegistry:extensionRegistry).build()
    }
    public class func getBuilder() -> Pogoprotos.Networking.Requests.Messages.CatchPokemonMessage.Builder {
      return Pogoprotos.Networking.Requests.Messages.CatchPokemonMessage.classBuilder() as! Pogoprotos.Networking.Requests.Messages.CatchPokemonMessage.Builder
    }
    public func getBuilder() -> Pogoprotos.Networking.Requests.Messages.CatchPokemonMessage.Builder {
      return classBuilder() as! Pogoprotos.Networking.Requests.Messages.CatchPokemonMessage.Builder
    }
    override public class func classBuilder() -> MessageBuilder {
      return Pogoprotos.Networking.Requests.Messages.CatchPokemonMessage.Builder()
    }
    override public func classBuilder() -> MessageBuilder {
      return Pogoprotos.Networking.Requests.Messages.CatchPokemonMessage.Builder()
    }
    public func toBuilder() throws -> Pogoprotos.Networking.Requests.Messages.CatchPokemonMessage.Builder {
      return try Pogoprotos.Networking.Requests.Messages.CatchPokemonMessage.builderWithPrototype(self)
    }
    public class func builderWithPrototype(prototype:Pogoprotos.Networking.Requests.Messages.CatchPokemonMessage) throws -> Pogoprotos.Networking.Requests.Messages.CatchPokemonMessage.Builder {
      return try Pogoprotos.Networking.Requests.Messages.CatchPokemonMessage.Builder().mergeFrom(prototype)
    }
    override public func encode() throws -> Dictionary<String,AnyObject> {
      guard isInitialized() else {
        throw ProtocolBuffersError.InvalidProtocolBuffer("Uninitialized Message")
      }

      var jsonMap:Dictionary<String,AnyObject> = Dictionary<String,AnyObject>()
      if hasEncounterId {
        jsonMap["encounterId"] = "\(encounterId)"
      }
      if hasPokeball {
        jsonMap["pokeball"] = pokeball.toString()
      }
      if hasNormalizedReticleSize {
        jsonMap["normalizedReticleSize"] = NSNumber(double:normalizedReticleSize)
      }
      if hasSpawnPointId {
        jsonMap["spawnPointId"] = spawnPointId
      }
      if hasHitPokemon {
        jsonMap["hitPokemon"] = hitPokemon
      }
      if hasSpinModifier {
        jsonMap["spinModifier"] = NSNumber(double:spinModifier)
      }
      if hasNormalizedHitPosition {
        jsonMap["normalizedHitPosition"] = NSNumber(double:normalizedHitPosition)
      }
      return jsonMap
    }
    override class public func decode(jsonMap:Dictionary<String,AnyObject>) throws -> Pogoprotos.Networking.Requests.Messages.CatchPokemonMessage {
      return try Pogoprotos.Networking.Requests.Messages.CatchPokemonMessage.Builder.decodeToBuilder(jsonMap).build()
    }
    override class public func fromJSON(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.CatchPokemonMessage {
      return try Pogoprotos.Networking.Requests.Messages.CatchPokemonMessage.Builder.fromJSONToBuilder(data).build()
    }
    override public func getDescription(indent:String) throws -> String {
      var output = ""
      if hasEncounterId {
        output += "\(indent) encounterId: \(encounterId) \n"
      }
      if (hasPokeball) {
        output += "\(indent) pokeball: \(pokeball.description)\n"
      }
      if hasNormalizedReticleSize {
        output += "\(indent) normalizedReticleSize: \(normalizedReticleSize) \n"
      }
      if hasSpawnPointId {
        output += "\(indent) spawnPointId: \(spawnPointId) \n"
      }
      if hasHitPokemon {
        output += "\(indent) hitPokemon: \(hitPokemon) \n"
      }
      if hasSpinModifier {
        output += "\(indent) spinModifier: \(spinModifier) \n"
      }
      if hasNormalizedHitPosition {
        output += "\(indent) normalizedHitPosition: \(normalizedHitPosition) \n"
      }
      output += unknownFields.getDescription(indent)
      return output
    }
    override public var hashValue:Int {
        get {
            var hashCode:Int = 7
            if hasEncounterId {
               hashCode = (hashCode &* 31) &+ encounterId.hashValue
            }
            if hasPokeball {
               hashCode = (hashCode &* 31) &+ Int(pokeball.rawValue)
            }
            if hasNormalizedReticleSize {
               hashCode = (hashCode &* 31) &+ normalizedReticleSize.hashValue
            }
            if hasSpawnPointId {
               hashCode = (hashCode &* 31) &+ spawnPointId.hashValue
            }
            if hasHitPokemon {
               hashCode = (hashCode &* 31) &+ hitPokemon.hashValue
            }
            if hasSpinModifier {
               hashCode = (hashCode &* 31) &+ spinModifier.hashValue
            }
            if hasNormalizedHitPosition {
               hashCode = (hashCode &* 31) &+ normalizedHitPosition.hashValue
            }
            hashCode = (hashCode &* 31) &+  unknownFields.hashValue
            return hashCode
        }
    }


    //Meta information declaration start

    override public class func className() -> String {
        return "Pogoprotos.Networking.Requests.Messages.CatchPokemonMessage"
    }
    override public func className() -> String {
        return "Pogoprotos.Networking.Requests.Messages.CatchPokemonMessage"
    }
    override public func classMetaType() -> GeneratedMessage.Type {
        return Pogoprotos.Networking.Requests.Messages.CatchPokemonMessage.self
    }
    //Meta information declaration end

    final public class Builder : GeneratedMessageBuilder {
      private var builderResult:Pogoprotos.Networking.Requests.Messages.CatchPokemonMessage = Pogoprotos.Networking.Requests.Messages.CatchPokemonMessage()
      public func getMessage() -> Pogoprotos.Networking.Requests.Messages.CatchPokemonMessage {
          return builderResult
      }

      required override public init () {
         super.init()
      }
      public var hasEncounterId:Bool {
           get {
                return builderResult.hasEncounterId
           }
      }
      public var encounterId:UInt64 {
           get {
                return builderResult.encounterId
           }
           set (value) {
               builderResult.hasEncounterId = true
               builderResult.encounterId = value
           }
      }
      public func setEncounterId(value:UInt64) -> Pogoprotos.Networking.Requests.Messages.CatchPokemonMessage.Builder {
        self.encounterId = value
        return self
      }
      public func clearEncounterId() -> Pogoprotos.Networking.Requests.Messages.CatchPokemonMessage.Builder{
           builderResult.hasEncounterId = false
           builderResult.encounterId = UInt64(0)
           return self
      }
        public var hasPokeball:Bool{
            get {
                return builderResult.hasPokeball
            }
        }
        public var pokeball:Pogoprotos.Inventory.Item.ItemId {
            get {
                return builderResult.pokeball
            }
            set (value) {
                builderResult.hasPokeball = true
                builderResult.pokeball = value
            }
        }
        public func setPokeball(value:Pogoprotos.Inventory.Item.ItemId) -> Pogoprotos.Networking.Requests.Messages.CatchPokemonMessage.Builder {
          self.pokeball = value
          return self
        }
        public func clearPokeball() -> Pogoprotos.Networking.Requests.Messages.CatchPokemonMessage.Builder {
           builderResult.hasPokeball = false
           builderResult.pokeball = .ItemUnknown
           return self
        }
      public var hasNormalizedReticleSize:Bool {
           get {
                return builderResult.hasNormalizedReticleSize
           }
      }
      public var normalizedReticleSize:Double {
           get {
                return builderResult.normalizedReticleSize
           }
           set (value) {
               builderResult.hasNormalizedReticleSize = true
               builderResult.normalizedReticleSize = value
           }
      }
      public func setNormalizedReticleSize(value:Double) -> Pogoprotos.Networking.Requests.Messages.CatchPokemonMessage.Builder {
        self.normalizedReticleSize = value
        return self
      }
      public func clearNormalizedReticleSize() -> Pogoprotos.Networking.Requests.Messages.CatchPokemonMessage.Builder{
           builderResult.hasNormalizedReticleSize = false
           builderResult.normalizedReticleSize = Double(0)
           return self
      }
      public var hasSpawnPointId:Bool {
           get {
                return builderResult.hasSpawnPointId
           }
      }
      public var spawnPointId:String {
           get {
                return builderResult.spawnPointId
           }
           set (value) {
               builderResult.hasSpawnPointId = true
               builderResult.spawnPointId = value
           }
      }
      public func setSpawnPointId(value:String) -> Pogoprotos.Networking.Requests.Messages.CatchPokemonMessage.Builder {
        self.spawnPointId = value
        return self
      }
      public func clearSpawnPointId() -> Pogoprotos.Networking.Requests.Messages.CatchPokemonMessage.Builder{
           builderResult.hasSpawnPointId = false
           builderResult.spawnPointId = ""
           return self
      }
      public var hasHitPokemon:Bool {
           get {
                return builderResult.hasHitPokemon
           }
      }
      public var hitPokemon:Bool {
           get {
                return builderResult.hitPokemon
           }
           set (value) {
               builderResult.hasHitPokemon = true
               builderResult.hitPokemon = value
           }
      }
      public func setHitPokemon(value:Bool) -> Pogoprotos.Networking.Requests.Messages.CatchPokemonMessage.Builder {
        self.hitPokemon = value
        return self
      }
      public func clearHitPokemon() -> Pogoprotos.Networking.Requests.Messages.CatchPokemonMessage.Builder{
           builderResult.hasHitPokemon = false
           builderResult.hitPokemon = false
           return self
      }
      public var hasSpinModifier:Bool {
           get {
                return builderResult.hasSpinModifier
           }
      }
      public var spinModifier:Double {
           get {
                return builderResult.spinModifier
           }
           set (value) {
               builderResult.hasSpinModifier = true
               builderResult.spinModifier = value
           }
      }
      public func setSpinModifier(value:Double) -> Pogoprotos.Networking.Requests.Messages.CatchPokemonMessage.Builder {
        self.spinModifier = value
        return self
      }
      public func clearSpinModifier() -> Pogoprotos.Networking.Requests.Messages.CatchPokemonMessage.Builder{
           builderResult.hasSpinModifier = false
           builderResult.spinModifier = Double(0)
           return self
      }
      public var hasNormalizedHitPosition:Bool {
           get {
                return builderResult.hasNormalizedHitPosition
           }
      }
      public var normalizedHitPosition:Double {
           get {
                return builderResult.normalizedHitPosition
           }
           set (value) {
               builderResult.hasNormalizedHitPosition = true
               builderResult.normalizedHitPosition = value
           }
      }
      public func setNormalizedHitPosition(value:Double) -> Pogoprotos.Networking.Requests.Messages.CatchPokemonMessage.Builder {
        self.normalizedHitPosition = value
        return self
      }
      public func clearNormalizedHitPosition() -> Pogoprotos.Networking.Requests.Messages.CatchPokemonMessage.Builder{
           builderResult.hasNormalizedHitPosition = false
           builderResult.normalizedHitPosition = Double(0)
           return self
      }
      override public var internalGetResult:GeneratedMessage {
           get {
              return builderResult
           }
      }
      override public func clear() -> Pogoprotos.Networking.Requests.Messages.CatchPokemonMessage.Builder {
        builderResult = Pogoprotos.Networking.Requests.Messages.CatchPokemonMessage()
        return self
      }
      override public func clone() throws -> Pogoprotos.Networking.Requests.Messages.CatchPokemonMessage.Builder {
        return try Pogoprotos.Networking.Requests.Messages.CatchPokemonMessage.builderWithPrototype(builderResult)
      }
      override public func build() throws -> Pogoprotos.Networking.Requests.Messages.CatchPokemonMessage {
           try checkInitialized()
           return buildPartial()
      }
      public func buildPartial() -> Pogoprotos.Networking.Requests.Messages.CatchPokemonMessage {
        let returnMe:Pogoprotos.Networking.Requests.Messages.CatchPokemonMessage = builderResult
        return returnMe
      }
      public func mergeFrom(other:Pogoprotos.Networking.Requests.Messages.CatchPokemonMessage) throws -> Pogoprotos.Networking.Requests.Messages.CatchPokemonMessage.Builder {
        if other == Pogoprotos.Networking.Requests.Messages.CatchPokemonMessage() {
         return self
        }
        if other.hasEncounterId {
             encounterId = other.encounterId
        }
        if other.hasPokeball {
             pokeball = other.pokeball
        }
        if other.hasNormalizedReticleSize {
             normalizedReticleSize = other.normalizedReticleSize
        }
        if other.hasSpawnPointId {
             spawnPointId = other.spawnPointId
        }
        if other.hasHitPokemon {
             hitPokemon = other.hitPokemon
        }
        if other.hasSpinModifier {
             spinModifier = other.spinModifier
        }
        if other.hasNormalizedHitPosition {
             normalizedHitPosition = other.normalizedHitPosition
        }
        try mergeUnknownFields(other.unknownFields)
        return self
      }
      override public func mergeFromCodedInputStream(input:CodedInputStream) throws -> Pogoprotos.Networking.Requests.Messages.CatchPokemonMessage.Builder {
           return try mergeFromCodedInputStream(input, extensionRegistry:ExtensionRegistry())
      }
      override public func mergeFromCodedInputStream(input:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.CatchPokemonMessage.Builder {
        let unknownFieldsBuilder:UnknownFieldSet.Builder = try UnknownFieldSet.builderWithUnknownFields(self.unknownFields)
        while (true) {
          let protobufTag = try input.readTag()
          switch protobufTag {
          case 0: 
            self.unknownFields = try unknownFieldsBuilder.build()
            return self

          case 9:
            encounterId = try input.readFixed64()

          case 16:
            let valueIntpokeball = try input.readEnum()
            if let enumspokeball = Pogoprotos.Inventory.Item.ItemId(rawValue:valueIntpokeball){
                 pokeball = enumspokeball
            } else {
                 try unknownFieldsBuilder.mergeVarintField(2, value:Int64(valueIntpokeball))
            }

          case 25:
            normalizedReticleSize = try input.readDouble()

          case 34:
            spawnPointId = try input.readString()

          case 40:
            hitPokemon = try input.readBool()

          case 49:
            spinModifier = try input.readDouble()

          case 57:
            normalizedHitPosition = try input.readDouble()

          default:
            if (!(try parseUnknownField(input,unknownFields:unknownFieldsBuilder, extensionRegistry:extensionRegistry, tag:protobufTag))) {
               unknownFields = try unknownFieldsBuilder.build()
               return self
            }
          }
        }
      }
      override class public func decodeToBuilder(jsonMap:Dictionary<String,AnyObject>) throws -> Pogoprotos.Networking.Requests.Messages.CatchPokemonMessage.Builder {
        let resultDecodedBuilder = Pogoprotos.Networking.Requests.Messages.CatchPokemonMessage.Builder()
        if let jsonValueEncounterId = jsonMap["encounterId"] as? String {
          resultDecodedBuilder.encounterId = UInt64(jsonValueEncounterId)!
        }
        if let jsonValuePokeball = jsonMap["pokeball"] as? String {
          resultDecodedBuilder.pokeball = try Pogoprotos.Inventory.Item.ItemId.fromString(jsonValuePokeball)
        }
        if let jsonValueNormalizedReticleSize = jsonMap["normalizedReticleSize"] as? NSNumber {
          resultDecodedBuilder.normalizedReticleSize = jsonValueNormalizedReticleSize.doubleValue
        }
        if let jsonValueSpawnPointId = jsonMap["spawnPointId"] as? String {
          resultDecodedBuilder.spawnPointId = jsonValueSpawnPointId
        }
        if let jsonValueHitPokemon = jsonMap["hitPokemon"] as? Bool {
          resultDecodedBuilder.hitPokemon = jsonValueHitPokemon
        }
        if let jsonValueSpinModifier = jsonMap["spinModifier"] as? NSNumber {
          resultDecodedBuilder.spinModifier = jsonValueSpinModifier.doubleValue
        }
        if let jsonValueNormalizedHitPosition = jsonMap["normalizedHitPosition"] as? NSNumber {
          resultDecodedBuilder.normalizedHitPosition = jsonValueNormalizedHitPosition.doubleValue
        }
        return resultDecodedBuilder
      }
      override class public func fromJSONToBuilder(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.CatchPokemonMessage.Builder {
        let jsonData = try NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions(rawValue: 0))
        guard let jsDataCast = jsonData as? Dictionary<String,AnyObject> else {
          throw ProtocolBuffersError.InvalidProtocolBuffer("Invalid JSON data")
        }
        return try Pogoprotos.Networking.Requests.Messages.CatchPokemonMessage.Builder.decodeToBuilder(jsDataCast)
      }
    }

  }

  // No message needed.
  final public class CheckAwardedBadgesMessage : GeneratedMessage, GeneratedMessageProtocol {
    required public init() {
         super.init()
    }
    override public func isInitialized() -> Bool {
     return true
    }
    override public func writeToCodedOutputStream(output:CodedOutputStream) throws {
      try unknownFields.writeToCodedOutputStream(output)
    }
    override public func serializedSize() -> Int32 {
      var serialize_size:Int32 = memoizedSerializedSize
      if serialize_size != -1 {
       return serialize_size
      }

      serialize_size = 0
      serialize_size += unknownFields.serializedSize()
      memoizedSerializedSize = serialize_size
      return serialize_size
    }
    public class func parseArrayDelimitedFromInputStream(input:NSInputStream) throws -> Array<Pogoprotos.Networking.Requests.Messages.CheckAwardedBadgesMessage> {
      var mergedArray = Array<Pogoprotos.Networking.Requests.Messages.CheckAwardedBadgesMessage>()
      while let value = try parseFromDelimitedFromInputStream(input) {
        mergedArray += [value]
      }
      return mergedArray
    }
    public class func parseFromDelimitedFromInputStream(input:NSInputStream) throws -> Pogoprotos.Networking.Requests.Messages.CheckAwardedBadgesMessage? {
      return try Pogoprotos.Networking.Requests.Messages.CheckAwardedBadgesMessage.Builder().mergeDelimitedFromInputStream(input)?.build()
    }
    public class func parseFromData(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.CheckAwardedBadgesMessage {
      return try Pogoprotos.Networking.Requests.Messages.CheckAwardedBadgesMessage.Builder().mergeFromData(data, extensionRegistry:Pogoprotos.Networking.Requests.Messages.PogoprotosNetworkingRequestsMessagesRoot.sharedInstance.extensionRegistry).build()
    }
    public class func parseFromData(data:NSData, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.CheckAwardedBadgesMessage {
      return try Pogoprotos.Networking.Requests.Messages.CheckAwardedBadgesMessage.Builder().mergeFromData(data, extensionRegistry:extensionRegistry).build()
    }
    public class func parseFromInputStream(input:NSInputStream) throws -> Pogoprotos.Networking.Requests.Messages.CheckAwardedBadgesMessage {
      return try Pogoprotos.Networking.Requests.Messages.CheckAwardedBadgesMessage.Builder().mergeFromInputStream(input).build()
    }
    public class func parseFromInputStream(input:NSInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.CheckAwardedBadgesMessage {
      return try Pogoprotos.Networking.Requests.Messages.CheckAwardedBadgesMessage.Builder().mergeFromInputStream(input, extensionRegistry:extensionRegistry).build()
    }
    public class func parseFromCodedInputStream(input:CodedInputStream) throws -> Pogoprotos.Networking.Requests.Messages.CheckAwardedBadgesMessage {
      return try Pogoprotos.Networking.Requests.Messages.CheckAwardedBadgesMessage.Builder().mergeFromCodedInputStream(input).build()
    }
    public class func parseFromCodedInputStream(input:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.CheckAwardedBadgesMessage {
      return try Pogoprotos.Networking.Requests.Messages.CheckAwardedBadgesMessage.Builder().mergeFromCodedInputStream(input, extensionRegistry:extensionRegistry).build()
    }
    public class func getBuilder() -> Pogoprotos.Networking.Requests.Messages.CheckAwardedBadgesMessage.Builder {
      return Pogoprotos.Networking.Requests.Messages.CheckAwardedBadgesMessage.classBuilder() as! Pogoprotos.Networking.Requests.Messages.CheckAwardedBadgesMessage.Builder
    }
    public func getBuilder() -> Pogoprotos.Networking.Requests.Messages.CheckAwardedBadgesMessage.Builder {
      return classBuilder() as! Pogoprotos.Networking.Requests.Messages.CheckAwardedBadgesMessage.Builder
    }
    override public class func classBuilder() -> MessageBuilder {
      return Pogoprotos.Networking.Requests.Messages.CheckAwardedBadgesMessage.Builder()
    }
    override public func classBuilder() -> MessageBuilder {
      return Pogoprotos.Networking.Requests.Messages.CheckAwardedBadgesMessage.Builder()
    }
    public func toBuilder() throws -> Pogoprotos.Networking.Requests.Messages.CheckAwardedBadgesMessage.Builder {
      return try Pogoprotos.Networking.Requests.Messages.CheckAwardedBadgesMessage.builderWithPrototype(self)
    }
    public class func builderWithPrototype(prototype:Pogoprotos.Networking.Requests.Messages.CheckAwardedBadgesMessage) throws -> Pogoprotos.Networking.Requests.Messages.CheckAwardedBadgesMessage.Builder {
      return try Pogoprotos.Networking.Requests.Messages.CheckAwardedBadgesMessage.Builder().mergeFrom(prototype)
    }
    override public func encode() throws -> Dictionary<String,AnyObject> {
      guard isInitialized() else {
        throw ProtocolBuffersError.InvalidProtocolBuffer("Uninitialized Message")
      }

      let jsonMap:Dictionary<String,AnyObject> = Dictionary<String,AnyObject>()
      return jsonMap
    }
    override class public func decode(jsonMap:Dictionary<String,AnyObject>) throws -> Pogoprotos.Networking.Requests.Messages.CheckAwardedBadgesMessage {
      return try Pogoprotos.Networking.Requests.Messages.CheckAwardedBadgesMessage.Builder.decodeToBuilder(jsonMap).build()
    }
    override class public func fromJSON(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.CheckAwardedBadgesMessage {
      return try Pogoprotos.Networking.Requests.Messages.CheckAwardedBadgesMessage.Builder.fromJSONToBuilder(data).build()
    }
    override public func getDescription(indent:String) throws -> String {
      var output = ""
      output += unknownFields.getDescription(indent)
      return output
    }
    override public var hashValue:Int {
        get {
            var hashCode:Int = 7
            hashCode = (hashCode &* 31) &+  unknownFields.hashValue
            return hashCode
        }
    }


    //Meta information declaration start

    override public class func className() -> String {
        return "Pogoprotos.Networking.Requests.Messages.CheckAwardedBadgesMessage"
    }
    override public func className() -> String {
        return "Pogoprotos.Networking.Requests.Messages.CheckAwardedBadgesMessage"
    }
    override public func classMetaType() -> GeneratedMessage.Type {
        return Pogoprotos.Networking.Requests.Messages.CheckAwardedBadgesMessage.self
    }
    //Meta information declaration end

    final public class Builder : GeneratedMessageBuilder {
      private var builderResult:Pogoprotos.Networking.Requests.Messages.CheckAwardedBadgesMessage = Pogoprotos.Networking.Requests.Messages.CheckAwardedBadgesMessage()
      public func getMessage() -> Pogoprotos.Networking.Requests.Messages.CheckAwardedBadgesMessage {
          return builderResult
      }

      required override public init () {
         super.init()
      }
      override public var internalGetResult:GeneratedMessage {
           get {
              return builderResult
           }
      }
      override public func clear() -> Pogoprotos.Networking.Requests.Messages.CheckAwardedBadgesMessage.Builder {
        builderResult = Pogoprotos.Networking.Requests.Messages.CheckAwardedBadgesMessage()
        return self
      }
      override public func clone() throws -> Pogoprotos.Networking.Requests.Messages.CheckAwardedBadgesMessage.Builder {
        return try Pogoprotos.Networking.Requests.Messages.CheckAwardedBadgesMessage.builderWithPrototype(builderResult)
      }
      override public func build() throws -> Pogoprotos.Networking.Requests.Messages.CheckAwardedBadgesMessage {
           try checkInitialized()
           return buildPartial()
      }
      public func buildPartial() -> Pogoprotos.Networking.Requests.Messages.CheckAwardedBadgesMessage {
        let returnMe:Pogoprotos.Networking.Requests.Messages.CheckAwardedBadgesMessage = builderResult
        return returnMe
      }
      public func mergeFrom(other:Pogoprotos.Networking.Requests.Messages.CheckAwardedBadgesMessage) throws -> Pogoprotos.Networking.Requests.Messages.CheckAwardedBadgesMessage.Builder {
        if other == Pogoprotos.Networking.Requests.Messages.CheckAwardedBadgesMessage() {
         return self
        }
        try mergeUnknownFields(other.unknownFields)
        return self
      }
      override public func mergeFromCodedInputStream(input:CodedInputStream) throws -> Pogoprotos.Networking.Requests.Messages.CheckAwardedBadgesMessage.Builder {
           return try mergeFromCodedInputStream(input, extensionRegistry:ExtensionRegistry())
      }
      override public func mergeFromCodedInputStream(input:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.CheckAwardedBadgesMessage.Builder {
        let unknownFieldsBuilder:UnknownFieldSet.Builder = try UnknownFieldSet.builderWithUnknownFields(self.unknownFields)
        while (true) {
          let protobufTag = try input.readTag()
          switch protobufTag {
          case 0: 
            self.unknownFields = try unknownFieldsBuilder.build()
            return self

          default:
            if (!(try parseUnknownField(input,unknownFields:unknownFieldsBuilder, extensionRegistry:extensionRegistry, tag:protobufTag))) {
               unknownFields = try unknownFieldsBuilder.build()
               return self
            }
          }
        }
      }
      override class public func decodeToBuilder(jsonMap:Dictionary<String,AnyObject>) throws -> Pogoprotos.Networking.Requests.Messages.CheckAwardedBadgesMessage.Builder {
        let resultDecodedBuilder = Pogoprotos.Networking.Requests.Messages.CheckAwardedBadgesMessage.Builder()
        return resultDecodedBuilder
      }
      override class public func fromJSONToBuilder(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.CheckAwardedBadgesMessage.Builder {
        let jsonData = try NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions(rawValue: 0))
        guard let jsDataCast = jsonData as? Dictionary<String,AnyObject> else {
          throw ProtocolBuffersError.InvalidProtocolBuffer("Invalid JSON data")
        }
        return try Pogoprotos.Networking.Requests.Messages.CheckAwardedBadgesMessage.Builder.decodeToBuilder(jsDataCast)
      }
    }

  }

  final public class CheckCodenameAvailableMessage : GeneratedMessage, GeneratedMessageProtocol {
    public private(set) var hasCodename:Bool = false
    public private(set) var codename:String = ""

    required public init() {
         super.init()
    }
    override public func isInitialized() -> Bool {
     return true
    }
    override public func writeToCodedOutputStream(output:CodedOutputStream) throws {
      if hasCodename {
        try output.writeString(1, value:codename)
      }
      try unknownFields.writeToCodedOutputStream(output)
    }
    override public func serializedSize() -> Int32 {
      var serialize_size:Int32 = memoizedSerializedSize
      if serialize_size != -1 {
       return serialize_size
      }

      serialize_size = 0
      if hasCodename {
        serialize_size += codename.computeStringSize(1)
      }
      serialize_size += unknownFields.serializedSize()
      memoizedSerializedSize = serialize_size
      return serialize_size
    }
    public class func parseArrayDelimitedFromInputStream(input:NSInputStream) throws -> Array<Pogoprotos.Networking.Requests.Messages.CheckCodenameAvailableMessage> {
      var mergedArray = Array<Pogoprotos.Networking.Requests.Messages.CheckCodenameAvailableMessage>()
      while let value = try parseFromDelimitedFromInputStream(input) {
        mergedArray += [value]
      }
      return mergedArray
    }
    public class func parseFromDelimitedFromInputStream(input:NSInputStream) throws -> Pogoprotos.Networking.Requests.Messages.CheckCodenameAvailableMessage? {
      return try Pogoprotos.Networking.Requests.Messages.CheckCodenameAvailableMessage.Builder().mergeDelimitedFromInputStream(input)?.build()
    }
    public class func parseFromData(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.CheckCodenameAvailableMessage {
      return try Pogoprotos.Networking.Requests.Messages.CheckCodenameAvailableMessage.Builder().mergeFromData(data, extensionRegistry:Pogoprotos.Networking.Requests.Messages.PogoprotosNetworkingRequestsMessagesRoot.sharedInstance.extensionRegistry).build()
    }
    public class func parseFromData(data:NSData, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.CheckCodenameAvailableMessage {
      return try Pogoprotos.Networking.Requests.Messages.CheckCodenameAvailableMessage.Builder().mergeFromData(data, extensionRegistry:extensionRegistry).build()
    }
    public class func parseFromInputStream(input:NSInputStream) throws -> Pogoprotos.Networking.Requests.Messages.CheckCodenameAvailableMessage {
      return try Pogoprotos.Networking.Requests.Messages.CheckCodenameAvailableMessage.Builder().mergeFromInputStream(input).build()
    }
    public class func parseFromInputStream(input:NSInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.CheckCodenameAvailableMessage {
      return try Pogoprotos.Networking.Requests.Messages.CheckCodenameAvailableMessage.Builder().mergeFromInputStream(input, extensionRegistry:extensionRegistry).build()
    }
    public class func parseFromCodedInputStream(input:CodedInputStream) throws -> Pogoprotos.Networking.Requests.Messages.CheckCodenameAvailableMessage {
      return try Pogoprotos.Networking.Requests.Messages.CheckCodenameAvailableMessage.Builder().mergeFromCodedInputStream(input).build()
    }
    public class func parseFromCodedInputStream(input:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.CheckCodenameAvailableMessage {
      return try Pogoprotos.Networking.Requests.Messages.CheckCodenameAvailableMessage.Builder().mergeFromCodedInputStream(input, extensionRegistry:extensionRegistry).build()
    }
    public class func getBuilder() -> Pogoprotos.Networking.Requests.Messages.CheckCodenameAvailableMessage.Builder {
      return Pogoprotos.Networking.Requests.Messages.CheckCodenameAvailableMessage.classBuilder() as! Pogoprotos.Networking.Requests.Messages.CheckCodenameAvailableMessage.Builder
    }
    public func getBuilder() -> Pogoprotos.Networking.Requests.Messages.CheckCodenameAvailableMessage.Builder {
      return classBuilder() as! Pogoprotos.Networking.Requests.Messages.CheckCodenameAvailableMessage.Builder
    }
    override public class func classBuilder() -> MessageBuilder {
      return Pogoprotos.Networking.Requests.Messages.CheckCodenameAvailableMessage.Builder()
    }
    override public func classBuilder() -> MessageBuilder {
      return Pogoprotos.Networking.Requests.Messages.CheckCodenameAvailableMessage.Builder()
    }
    public func toBuilder() throws -> Pogoprotos.Networking.Requests.Messages.CheckCodenameAvailableMessage.Builder {
      return try Pogoprotos.Networking.Requests.Messages.CheckCodenameAvailableMessage.builderWithPrototype(self)
    }
    public class func builderWithPrototype(prototype:Pogoprotos.Networking.Requests.Messages.CheckCodenameAvailableMessage) throws -> Pogoprotos.Networking.Requests.Messages.CheckCodenameAvailableMessage.Builder {
      return try Pogoprotos.Networking.Requests.Messages.CheckCodenameAvailableMessage.Builder().mergeFrom(prototype)
    }
    override public func encode() throws -> Dictionary<String,AnyObject> {
      guard isInitialized() else {
        throw ProtocolBuffersError.InvalidProtocolBuffer("Uninitialized Message")
      }

      var jsonMap:Dictionary<String,AnyObject> = Dictionary<String,AnyObject>()
      if hasCodename {
        jsonMap["codename"] = codename
      }
      return jsonMap
    }
    override class public func decode(jsonMap:Dictionary<String,AnyObject>) throws -> Pogoprotos.Networking.Requests.Messages.CheckCodenameAvailableMessage {
      return try Pogoprotos.Networking.Requests.Messages.CheckCodenameAvailableMessage.Builder.decodeToBuilder(jsonMap).build()
    }
    override class public func fromJSON(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.CheckCodenameAvailableMessage {
      return try Pogoprotos.Networking.Requests.Messages.CheckCodenameAvailableMessage.Builder.fromJSONToBuilder(data).build()
    }
    override public func getDescription(indent:String) throws -> String {
      var output = ""
      if hasCodename {
        output += "\(indent) codename: \(codename) \n"
      }
      output += unknownFields.getDescription(indent)
      return output
    }
    override public var hashValue:Int {
        get {
            var hashCode:Int = 7
            if hasCodename {
               hashCode = (hashCode &* 31) &+ codename.hashValue
            }
            hashCode = (hashCode &* 31) &+  unknownFields.hashValue
            return hashCode
        }
    }


    //Meta information declaration start

    override public class func className() -> String {
        return "Pogoprotos.Networking.Requests.Messages.CheckCodenameAvailableMessage"
    }
    override public func className() -> String {
        return "Pogoprotos.Networking.Requests.Messages.CheckCodenameAvailableMessage"
    }
    override public func classMetaType() -> GeneratedMessage.Type {
        return Pogoprotos.Networking.Requests.Messages.CheckCodenameAvailableMessage.self
    }
    //Meta information declaration end

    final public class Builder : GeneratedMessageBuilder {
      private var builderResult:Pogoprotos.Networking.Requests.Messages.CheckCodenameAvailableMessage = Pogoprotos.Networking.Requests.Messages.CheckCodenameAvailableMessage()
      public func getMessage() -> Pogoprotos.Networking.Requests.Messages.CheckCodenameAvailableMessage {
          return builderResult
      }

      required override public init () {
         super.init()
      }
      public var hasCodename:Bool {
           get {
                return builderResult.hasCodename
           }
      }
      public var codename:String {
           get {
                return builderResult.codename
           }
           set (value) {
               builderResult.hasCodename = true
               builderResult.codename = value
           }
      }
      public func setCodename(value:String) -> Pogoprotos.Networking.Requests.Messages.CheckCodenameAvailableMessage.Builder {
        self.codename = value
        return self
      }
      public func clearCodename() -> Pogoprotos.Networking.Requests.Messages.CheckCodenameAvailableMessage.Builder{
           builderResult.hasCodename = false
           builderResult.codename = ""
           return self
      }
      override public var internalGetResult:GeneratedMessage {
           get {
              return builderResult
           }
      }
      override public func clear() -> Pogoprotos.Networking.Requests.Messages.CheckCodenameAvailableMessage.Builder {
        builderResult = Pogoprotos.Networking.Requests.Messages.CheckCodenameAvailableMessage()
        return self
      }
      override public func clone() throws -> Pogoprotos.Networking.Requests.Messages.CheckCodenameAvailableMessage.Builder {
        return try Pogoprotos.Networking.Requests.Messages.CheckCodenameAvailableMessage.builderWithPrototype(builderResult)
      }
      override public func build() throws -> Pogoprotos.Networking.Requests.Messages.CheckCodenameAvailableMessage {
           try checkInitialized()
           return buildPartial()
      }
      public func buildPartial() -> Pogoprotos.Networking.Requests.Messages.CheckCodenameAvailableMessage {
        let returnMe:Pogoprotos.Networking.Requests.Messages.CheckCodenameAvailableMessage = builderResult
        return returnMe
      }
      public func mergeFrom(other:Pogoprotos.Networking.Requests.Messages.CheckCodenameAvailableMessage) throws -> Pogoprotos.Networking.Requests.Messages.CheckCodenameAvailableMessage.Builder {
        if other == Pogoprotos.Networking.Requests.Messages.CheckCodenameAvailableMessage() {
         return self
        }
        if other.hasCodename {
             codename = other.codename
        }
        try mergeUnknownFields(other.unknownFields)
        return self
      }
      override public func mergeFromCodedInputStream(input:CodedInputStream) throws -> Pogoprotos.Networking.Requests.Messages.CheckCodenameAvailableMessage.Builder {
           return try mergeFromCodedInputStream(input, extensionRegistry:ExtensionRegistry())
      }
      override public func mergeFromCodedInputStream(input:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.CheckCodenameAvailableMessage.Builder {
        let unknownFieldsBuilder:UnknownFieldSet.Builder = try UnknownFieldSet.builderWithUnknownFields(self.unknownFields)
        while (true) {
          let protobufTag = try input.readTag()
          switch protobufTag {
          case 0: 
            self.unknownFields = try unknownFieldsBuilder.build()
            return self

          case 10:
            codename = try input.readString()

          default:
            if (!(try parseUnknownField(input,unknownFields:unknownFieldsBuilder, extensionRegistry:extensionRegistry, tag:protobufTag))) {
               unknownFields = try unknownFieldsBuilder.build()
               return self
            }
          }
        }
      }
      override class public func decodeToBuilder(jsonMap:Dictionary<String,AnyObject>) throws -> Pogoprotos.Networking.Requests.Messages.CheckCodenameAvailableMessage.Builder {
        let resultDecodedBuilder = Pogoprotos.Networking.Requests.Messages.CheckCodenameAvailableMessage.Builder()
        if let jsonValueCodename = jsonMap["codename"] as? String {
          resultDecodedBuilder.codename = jsonValueCodename
        }
        return resultDecodedBuilder
      }
      override class public func fromJSONToBuilder(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.CheckCodenameAvailableMessage.Builder {
        let jsonData = try NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions(rawValue: 0))
        guard let jsDataCast = jsonData as? Dictionary<String,AnyObject> else {
          throw ProtocolBuffersError.InvalidProtocolBuffer("Invalid JSON data")
        }
        return try Pogoprotos.Networking.Requests.Messages.CheckCodenameAvailableMessage.Builder.decodeToBuilder(jsDataCast)
      }
    }

  }

  final public class ClaimCodenameMessage : GeneratedMessage, GeneratedMessageProtocol {
    public private(set) var hasCodename:Bool = false
    public private(set) var codename:String = ""

    required public init() {
         super.init()
    }
    override public func isInitialized() -> Bool {
     return true
    }
    override public func writeToCodedOutputStream(output:CodedOutputStream) throws {
      if hasCodename {
        try output.writeString(1, value:codename)
      }
      try unknownFields.writeToCodedOutputStream(output)
    }
    override public func serializedSize() -> Int32 {
      var serialize_size:Int32 = memoizedSerializedSize
      if serialize_size != -1 {
       return serialize_size
      }

      serialize_size = 0
      if hasCodename {
        serialize_size += codename.computeStringSize(1)
      }
      serialize_size += unknownFields.serializedSize()
      memoizedSerializedSize = serialize_size
      return serialize_size
    }
    public class func parseArrayDelimitedFromInputStream(input:NSInputStream) throws -> Array<Pogoprotos.Networking.Requests.Messages.ClaimCodenameMessage> {
      var mergedArray = Array<Pogoprotos.Networking.Requests.Messages.ClaimCodenameMessage>()
      while let value = try parseFromDelimitedFromInputStream(input) {
        mergedArray += [value]
      }
      return mergedArray
    }
    public class func parseFromDelimitedFromInputStream(input:NSInputStream) throws -> Pogoprotos.Networking.Requests.Messages.ClaimCodenameMessage? {
      return try Pogoprotos.Networking.Requests.Messages.ClaimCodenameMessage.Builder().mergeDelimitedFromInputStream(input)?.build()
    }
    public class func parseFromData(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.ClaimCodenameMessage {
      return try Pogoprotos.Networking.Requests.Messages.ClaimCodenameMessage.Builder().mergeFromData(data, extensionRegistry:Pogoprotos.Networking.Requests.Messages.PogoprotosNetworkingRequestsMessagesRoot.sharedInstance.extensionRegistry).build()
    }
    public class func parseFromData(data:NSData, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.ClaimCodenameMessage {
      return try Pogoprotos.Networking.Requests.Messages.ClaimCodenameMessage.Builder().mergeFromData(data, extensionRegistry:extensionRegistry).build()
    }
    public class func parseFromInputStream(input:NSInputStream) throws -> Pogoprotos.Networking.Requests.Messages.ClaimCodenameMessage {
      return try Pogoprotos.Networking.Requests.Messages.ClaimCodenameMessage.Builder().mergeFromInputStream(input).build()
    }
    public class func parseFromInputStream(input:NSInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.ClaimCodenameMessage {
      return try Pogoprotos.Networking.Requests.Messages.ClaimCodenameMessage.Builder().mergeFromInputStream(input, extensionRegistry:extensionRegistry).build()
    }
    public class func parseFromCodedInputStream(input:CodedInputStream) throws -> Pogoprotos.Networking.Requests.Messages.ClaimCodenameMessage {
      return try Pogoprotos.Networking.Requests.Messages.ClaimCodenameMessage.Builder().mergeFromCodedInputStream(input).build()
    }
    public class func parseFromCodedInputStream(input:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.ClaimCodenameMessage {
      return try Pogoprotos.Networking.Requests.Messages.ClaimCodenameMessage.Builder().mergeFromCodedInputStream(input, extensionRegistry:extensionRegistry).build()
    }
    public class func getBuilder() -> Pogoprotos.Networking.Requests.Messages.ClaimCodenameMessage.Builder {
      return Pogoprotos.Networking.Requests.Messages.ClaimCodenameMessage.classBuilder() as! Pogoprotos.Networking.Requests.Messages.ClaimCodenameMessage.Builder
    }
    public func getBuilder() -> Pogoprotos.Networking.Requests.Messages.ClaimCodenameMessage.Builder {
      return classBuilder() as! Pogoprotos.Networking.Requests.Messages.ClaimCodenameMessage.Builder
    }
    override public class func classBuilder() -> MessageBuilder {
      return Pogoprotos.Networking.Requests.Messages.ClaimCodenameMessage.Builder()
    }
    override public func classBuilder() -> MessageBuilder {
      return Pogoprotos.Networking.Requests.Messages.ClaimCodenameMessage.Builder()
    }
    public func toBuilder() throws -> Pogoprotos.Networking.Requests.Messages.ClaimCodenameMessage.Builder {
      return try Pogoprotos.Networking.Requests.Messages.ClaimCodenameMessage.builderWithPrototype(self)
    }
    public class func builderWithPrototype(prototype:Pogoprotos.Networking.Requests.Messages.ClaimCodenameMessage) throws -> Pogoprotos.Networking.Requests.Messages.ClaimCodenameMessage.Builder {
      return try Pogoprotos.Networking.Requests.Messages.ClaimCodenameMessage.Builder().mergeFrom(prototype)
    }
    override public func encode() throws -> Dictionary<String,AnyObject> {
      guard isInitialized() else {
        throw ProtocolBuffersError.InvalidProtocolBuffer("Uninitialized Message")
      }

      var jsonMap:Dictionary<String,AnyObject> = Dictionary<String,AnyObject>()
      if hasCodename {
        jsonMap["codename"] = codename
      }
      return jsonMap
    }
    override class public func decode(jsonMap:Dictionary<String,AnyObject>) throws -> Pogoprotos.Networking.Requests.Messages.ClaimCodenameMessage {
      return try Pogoprotos.Networking.Requests.Messages.ClaimCodenameMessage.Builder.decodeToBuilder(jsonMap).build()
    }
    override class public func fromJSON(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.ClaimCodenameMessage {
      return try Pogoprotos.Networking.Requests.Messages.ClaimCodenameMessage.Builder.fromJSONToBuilder(data).build()
    }
    override public func getDescription(indent:String) throws -> String {
      var output = ""
      if hasCodename {
        output += "\(indent) codename: \(codename) \n"
      }
      output += unknownFields.getDescription(indent)
      return output
    }
    override public var hashValue:Int {
        get {
            var hashCode:Int = 7
            if hasCodename {
               hashCode = (hashCode &* 31) &+ codename.hashValue
            }
            hashCode = (hashCode &* 31) &+  unknownFields.hashValue
            return hashCode
        }
    }


    //Meta information declaration start

    override public class func className() -> String {
        return "Pogoprotos.Networking.Requests.Messages.ClaimCodenameMessage"
    }
    override public func className() -> String {
        return "Pogoprotos.Networking.Requests.Messages.ClaimCodenameMessage"
    }
    override public func classMetaType() -> GeneratedMessage.Type {
        return Pogoprotos.Networking.Requests.Messages.ClaimCodenameMessage.self
    }
    //Meta information declaration end

    final public class Builder : GeneratedMessageBuilder {
      private var builderResult:Pogoprotos.Networking.Requests.Messages.ClaimCodenameMessage = Pogoprotos.Networking.Requests.Messages.ClaimCodenameMessage()
      public func getMessage() -> Pogoprotos.Networking.Requests.Messages.ClaimCodenameMessage {
          return builderResult
      }

      required override public init () {
         super.init()
      }
      public var hasCodename:Bool {
           get {
                return builderResult.hasCodename
           }
      }
      public var codename:String {
           get {
                return builderResult.codename
           }
           set (value) {
               builderResult.hasCodename = true
               builderResult.codename = value
           }
      }
      public func setCodename(value:String) -> Pogoprotos.Networking.Requests.Messages.ClaimCodenameMessage.Builder {
        self.codename = value
        return self
      }
      public func clearCodename() -> Pogoprotos.Networking.Requests.Messages.ClaimCodenameMessage.Builder{
           builderResult.hasCodename = false
           builderResult.codename = ""
           return self
      }
      override public var internalGetResult:GeneratedMessage {
           get {
              return builderResult
           }
      }
      override public func clear() -> Pogoprotos.Networking.Requests.Messages.ClaimCodenameMessage.Builder {
        builderResult = Pogoprotos.Networking.Requests.Messages.ClaimCodenameMessage()
        return self
      }
      override public func clone() throws -> Pogoprotos.Networking.Requests.Messages.ClaimCodenameMessage.Builder {
        return try Pogoprotos.Networking.Requests.Messages.ClaimCodenameMessage.builderWithPrototype(builderResult)
      }
      override public func build() throws -> Pogoprotos.Networking.Requests.Messages.ClaimCodenameMessage {
           try checkInitialized()
           return buildPartial()
      }
      public func buildPartial() -> Pogoprotos.Networking.Requests.Messages.ClaimCodenameMessage {
        let returnMe:Pogoprotos.Networking.Requests.Messages.ClaimCodenameMessage = builderResult
        return returnMe
      }
      public func mergeFrom(other:Pogoprotos.Networking.Requests.Messages.ClaimCodenameMessage) throws -> Pogoprotos.Networking.Requests.Messages.ClaimCodenameMessage.Builder {
        if other == Pogoprotos.Networking.Requests.Messages.ClaimCodenameMessage() {
         return self
        }
        if other.hasCodename {
             codename = other.codename
        }
        try mergeUnknownFields(other.unknownFields)
        return self
      }
      override public func mergeFromCodedInputStream(input:CodedInputStream) throws -> Pogoprotos.Networking.Requests.Messages.ClaimCodenameMessage.Builder {
           return try mergeFromCodedInputStream(input, extensionRegistry:ExtensionRegistry())
      }
      override public func mergeFromCodedInputStream(input:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.ClaimCodenameMessage.Builder {
        let unknownFieldsBuilder:UnknownFieldSet.Builder = try UnknownFieldSet.builderWithUnknownFields(self.unknownFields)
        while (true) {
          let protobufTag = try input.readTag()
          switch protobufTag {
          case 0: 
            self.unknownFields = try unknownFieldsBuilder.build()
            return self

          case 10:
            codename = try input.readString()

          default:
            if (!(try parseUnknownField(input,unknownFields:unknownFieldsBuilder, extensionRegistry:extensionRegistry, tag:protobufTag))) {
               unknownFields = try unknownFieldsBuilder.build()
               return self
            }
          }
        }
      }
      override class public func decodeToBuilder(jsonMap:Dictionary<String,AnyObject>) throws -> Pogoprotos.Networking.Requests.Messages.ClaimCodenameMessage.Builder {
        let resultDecodedBuilder = Pogoprotos.Networking.Requests.Messages.ClaimCodenameMessage.Builder()
        if let jsonValueCodename = jsonMap["codename"] as? String {
          resultDecodedBuilder.codename = jsonValueCodename
        }
        return resultDecodedBuilder
      }
      override class public func fromJSONToBuilder(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.ClaimCodenameMessage.Builder {
        let jsonData = try NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions(rawValue: 0))
        guard let jsDataCast = jsonData as? Dictionary<String,AnyObject> else {
          throw ProtocolBuffersError.InvalidProtocolBuffer("Invalid JSON data")
        }
        return try Pogoprotos.Networking.Requests.Messages.ClaimCodenameMessage.Builder.decodeToBuilder(jsDataCast)
      }
    }

  }

  // No message needed.
  final public class CollectDailyBonusMessage : GeneratedMessage, GeneratedMessageProtocol {
    required public init() {
         super.init()
    }
    override public func isInitialized() -> Bool {
     return true
    }
    override public func writeToCodedOutputStream(output:CodedOutputStream) throws {
      try unknownFields.writeToCodedOutputStream(output)
    }
    override public func serializedSize() -> Int32 {
      var serialize_size:Int32 = memoizedSerializedSize
      if serialize_size != -1 {
       return serialize_size
      }

      serialize_size = 0
      serialize_size += unknownFields.serializedSize()
      memoizedSerializedSize = serialize_size
      return serialize_size
    }
    public class func parseArrayDelimitedFromInputStream(input:NSInputStream) throws -> Array<Pogoprotos.Networking.Requests.Messages.CollectDailyBonusMessage> {
      var mergedArray = Array<Pogoprotos.Networking.Requests.Messages.CollectDailyBonusMessage>()
      while let value = try parseFromDelimitedFromInputStream(input) {
        mergedArray += [value]
      }
      return mergedArray
    }
    public class func parseFromDelimitedFromInputStream(input:NSInputStream) throws -> Pogoprotos.Networking.Requests.Messages.CollectDailyBonusMessage? {
      return try Pogoprotos.Networking.Requests.Messages.CollectDailyBonusMessage.Builder().mergeDelimitedFromInputStream(input)?.build()
    }
    public class func parseFromData(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.CollectDailyBonusMessage {
      return try Pogoprotos.Networking.Requests.Messages.CollectDailyBonusMessage.Builder().mergeFromData(data, extensionRegistry:Pogoprotos.Networking.Requests.Messages.PogoprotosNetworkingRequestsMessagesRoot.sharedInstance.extensionRegistry).build()
    }
    public class func parseFromData(data:NSData, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.CollectDailyBonusMessage {
      return try Pogoprotos.Networking.Requests.Messages.CollectDailyBonusMessage.Builder().mergeFromData(data, extensionRegistry:extensionRegistry).build()
    }
    public class func parseFromInputStream(input:NSInputStream) throws -> Pogoprotos.Networking.Requests.Messages.CollectDailyBonusMessage {
      return try Pogoprotos.Networking.Requests.Messages.CollectDailyBonusMessage.Builder().mergeFromInputStream(input).build()
    }
    public class func parseFromInputStream(input:NSInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.CollectDailyBonusMessage {
      return try Pogoprotos.Networking.Requests.Messages.CollectDailyBonusMessage.Builder().mergeFromInputStream(input, extensionRegistry:extensionRegistry).build()
    }
    public class func parseFromCodedInputStream(input:CodedInputStream) throws -> Pogoprotos.Networking.Requests.Messages.CollectDailyBonusMessage {
      return try Pogoprotos.Networking.Requests.Messages.CollectDailyBonusMessage.Builder().mergeFromCodedInputStream(input).build()
    }
    public class func parseFromCodedInputStream(input:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.CollectDailyBonusMessage {
      return try Pogoprotos.Networking.Requests.Messages.CollectDailyBonusMessage.Builder().mergeFromCodedInputStream(input, extensionRegistry:extensionRegistry).build()
    }
    public class func getBuilder() -> Pogoprotos.Networking.Requests.Messages.CollectDailyBonusMessage.Builder {
      return Pogoprotos.Networking.Requests.Messages.CollectDailyBonusMessage.classBuilder() as! Pogoprotos.Networking.Requests.Messages.CollectDailyBonusMessage.Builder
    }
    public func getBuilder() -> Pogoprotos.Networking.Requests.Messages.CollectDailyBonusMessage.Builder {
      return classBuilder() as! Pogoprotos.Networking.Requests.Messages.CollectDailyBonusMessage.Builder
    }
    override public class func classBuilder() -> MessageBuilder {
      return Pogoprotos.Networking.Requests.Messages.CollectDailyBonusMessage.Builder()
    }
    override public func classBuilder() -> MessageBuilder {
      return Pogoprotos.Networking.Requests.Messages.CollectDailyBonusMessage.Builder()
    }
    public func toBuilder() throws -> Pogoprotos.Networking.Requests.Messages.CollectDailyBonusMessage.Builder {
      return try Pogoprotos.Networking.Requests.Messages.CollectDailyBonusMessage.builderWithPrototype(self)
    }
    public class func builderWithPrototype(prototype:Pogoprotos.Networking.Requests.Messages.CollectDailyBonusMessage) throws -> Pogoprotos.Networking.Requests.Messages.CollectDailyBonusMessage.Builder {
      return try Pogoprotos.Networking.Requests.Messages.CollectDailyBonusMessage.Builder().mergeFrom(prototype)
    }
    override public func encode() throws -> Dictionary<String,AnyObject> {
      guard isInitialized() else {
        throw ProtocolBuffersError.InvalidProtocolBuffer("Uninitialized Message")
      }

      let jsonMap:Dictionary<String,AnyObject> = Dictionary<String,AnyObject>()
      return jsonMap
    }
    override class public func decode(jsonMap:Dictionary<String,AnyObject>) throws -> Pogoprotos.Networking.Requests.Messages.CollectDailyBonusMessage {
      return try Pogoprotos.Networking.Requests.Messages.CollectDailyBonusMessage.Builder.decodeToBuilder(jsonMap).build()
    }
    override class public func fromJSON(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.CollectDailyBonusMessage {
      return try Pogoprotos.Networking.Requests.Messages.CollectDailyBonusMessage.Builder.fromJSONToBuilder(data).build()
    }
    override public func getDescription(indent:String) throws -> String {
      var output = ""
      output += unknownFields.getDescription(indent)
      return output
    }
    override public var hashValue:Int {
        get {
            var hashCode:Int = 7
            hashCode = (hashCode &* 31) &+  unknownFields.hashValue
            return hashCode
        }
    }


    //Meta information declaration start

    override public class func className() -> String {
        return "Pogoprotos.Networking.Requests.Messages.CollectDailyBonusMessage"
    }
    override public func className() -> String {
        return "Pogoprotos.Networking.Requests.Messages.CollectDailyBonusMessage"
    }
    override public func classMetaType() -> GeneratedMessage.Type {
        return Pogoprotos.Networking.Requests.Messages.CollectDailyBonusMessage.self
    }
    //Meta information declaration end

    final public class Builder : GeneratedMessageBuilder {
      private var builderResult:Pogoprotos.Networking.Requests.Messages.CollectDailyBonusMessage = Pogoprotos.Networking.Requests.Messages.CollectDailyBonusMessage()
      public func getMessage() -> Pogoprotos.Networking.Requests.Messages.CollectDailyBonusMessage {
          return builderResult
      }

      required override public init () {
         super.init()
      }
      override public var internalGetResult:GeneratedMessage {
           get {
              return builderResult
           }
      }
      override public func clear() -> Pogoprotos.Networking.Requests.Messages.CollectDailyBonusMessage.Builder {
        builderResult = Pogoprotos.Networking.Requests.Messages.CollectDailyBonusMessage()
        return self
      }
      override public func clone() throws -> Pogoprotos.Networking.Requests.Messages.CollectDailyBonusMessage.Builder {
        return try Pogoprotos.Networking.Requests.Messages.CollectDailyBonusMessage.builderWithPrototype(builderResult)
      }
      override public func build() throws -> Pogoprotos.Networking.Requests.Messages.CollectDailyBonusMessage {
           try checkInitialized()
           return buildPartial()
      }
      public func buildPartial() -> Pogoprotos.Networking.Requests.Messages.CollectDailyBonusMessage {
        let returnMe:Pogoprotos.Networking.Requests.Messages.CollectDailyBonusMessage = builderResult
        return returnMe
      }
      public func mergeFrom(other:Pogoprotos.Networking.Requests.Messages.CollectDailyBonusMessage) throws -> Pogoprotos.Networking.Requests.Messages.CollectDailyBonusMessage.Builder {
        if other == Pogoprotos.Networking.Requests.Messages.CollectDailyBonusMessage() {
         return self
        }
        try mergeUnknownFields(other.unknownFields)
        return self
      }
      override public func mergeFromCodedInputStream(input:CodedInputStream) throws -> Pogoprotos.Networking.Requests.Messages.CollectDailyBonusMessage.Builder {
           return try mergeFromCodedInputStream(input, extensionRegistry:ExtensionRegistry())
      }
      override public func mergeFromCodedInputStream(input:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.CollectDailyBonusMessage.Builder {
        let unknownFieldsBuilder:UnknownFieldSet.Builder = try UnknownFieldSet.builderWithUnknownFields(self.unknownFields)
        while (true) {
          let protobufTag = try input.readTag()
          switch protobufTag {
          case 0: 
            self.unknownFields = try unknownFieldsBuilder.build()
            return self

          default:
            if (!(try parseUnknownField(input,unknownFields:unknownFieldsBuilder, extensionRegistry:extensionRegistry, tag:protobufTag))) {
               unknownFields = try unknownFieldsBuilder.build()
               return self
            }
          }
        }
      }
      override class public func decodeToBuilder(jsonMap:Dictionary<String,AnyObject>) throws -> Pogoprotos.Networking.Requests.Messages.CollectDailyBonusMessage.Builder {
        let resultDecodedBuilder = Pogoprotos.Networking.Requests.Messages.CollectDailyBonusMessage.Builder()
        return resultDecodedBuilder
      }
      override class public func fromJSONToBuilder(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.CollectDailyBonusMessage.Builder {
        let jsonData = try NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions(rawValue: 0))
        guard let jsDataCast = jsonData as? Dictionary<String,AnyObject> else {
          throw ProtocolBuffersError.InvalidProtocolBuffer("Invalid JSON data")
        }
        return try Pogoprotos.Networking.Requests.Messages.CollectDailyBonusMessage.Builder.decodeToBuilder(jsDataCast)
      }
    }

  }

  // No message needed.
  final public class CollectDailyDefenderBonusMessage : GeneratedMessage, GeneratedMessageProtocol {
    required public init() {
         super.init()
    }
    override public func isInitialized() -> Bool {
     return true
    }
    override public func writeToCodedOutputStream(output:CodedOutputStream) throws {
      try unknownFields.writeToCodedOutputStream(output)
    }
    override public func serializedSize() -> Int32 {
      var serialize_size:Int32 = memoizedSerializedSize
      if serialize_size != -1 {
       return serialize_size
      }

      serialize_size = 0
      serialize_size += unknownFields.serializedSize()
      memoizedSerializedSize = serialize_size
      return serialize_size
    }
    public class func parseArrayDelimitedFromInputStream(input:NSInputStream) throws -> Array<Pogoprotos.Networking.Requests.Messages.CollectDailyDefenderBonusMessage> {
      var mergedArray = Array<Pogoprotos.Networking.Requests.Messages.CollectDailyDefenderBonusMessage>()
      while let value = try parseFromDelimitedFromInputStream(input) {
        mergedArray += [value]
      }
      return mergedArray
    }
    public class func parseFromDelimitedFromInputStream(input:NSInputStream) throws -> Pogoprotos.Networking.Requests.Messages.CollectDailyDefenderBonusMessage? {
      return try Pogoprotos.Networking.Requests.Messages.CollectDailyDefenderBonusMessage.Builder().mergeDelimitedFromInputStream(input)?.build()
    }
    public class func parseFromData(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.CollectDailyDefenderBonusMessage {
      return try Pogoprotos.Networking.Requests.Messages.CollectDailyDefenderBonusMessage.Builder().mergeFromData(data, extensionRegistry:Pogoprotos.Networking.Requests.Messages.PogoprotosNetworkingRequestsMessagesRoot.sharedInstance.extensionRegistry).build()
    }
    public class func parseFromData(data:NSData, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.CollectDailyDefenderBonusMessage {
      return try Pogoprotos.Networking.Requests.Messages.CollectDailyDefenderBonusMessage.Builder().mergeFromData(data, extensionRegistry:extensionRegistry).build()
    }
    public class func parseFromInputStream(input:NSInputStream) throws -> Pogoprotos.Networking.Requests.Messages.CollectDailyDefenderBonusMessage {
      return try Pogoprotos.Networking.Requests.Messages.CollectDailyDefenderBonusMessage.Builder().mergeFromInputStream(input).build()
    }
    public class func parseFromInputStream(input:NSInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.CollectDailyDefenderBonusMessage {
      return try Pogoprotos.Networking.Requests.Messages.CollectDailyDefenderBonusMessage.Builder().mergeFromInputStream(input, extensionRegistry:extensionRegistry).build()
    }
    public class func parseFromCodedInputStream(input:CodedInputStream) throws -> Pogoprotos.Networking.Requests.Messages.CollectDailyDefenderBonusMessage {
      return try Pogoprotos.Networking.Requests.Messages.CollectDailyDefenderBonusMessage.Builder().mergeFromCodedInputStream(input).build()
    }
    public class func parseFromCodedInputStream(input:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.CollectDailyDefenderBonusMessage {
      return try Pogoprotos.Networking.Requests.Messages.CollectDailyDefenderBonusMessage.Builder().mergeFromCodedInputStream(input, extensionRegistry:extensionRegistry).build()
    }
    public class func getBuilder() -> Pogoprotos.Networking.Requests.Messages.CollectDailyDefenderBonusMessage.Builder {
      return Pogoprotos.Networking.Requests.Messages.CollectDailyDefenderBonusMessage.classBuilder() as! Pogoprotos.Networking.Requests.Messages.CollectDailyDefenderBonusMessage.Builder
    }
    public func getBuilder() -> Pogoprotos.Networking.Requests.Messages.CollectDailyDefenderBonusMessage.Builder {
      return classBuilder() as! Pogoprotos.Networking.Requests.Messages.CollectDailyDefenderBonusMessage.Builder
    }
    override public class func classBuilder() -> MessageBuilder {
      return Pogoprotos.Networking.Requests.Messages.CollectDailyDefenderBonusMessage.Builder()
    }
    override public func classBuilder() -> MessageBuilder {
      return Pogoprotos.Networking.Requests.Messages.CollectDailyDefenderBonusMessage.Builder()
    }
    public func toBuilder() throws -> Pogoprotos.Networking.Requests.Messages.CollectDailyDefenderBonusMessage.Builder {
      return try Pogoprotos.Networking.Requests.Messages.CollectDailyDefenderBonusMessage.builderWithPrototype(self)
    }
    public class func builderWithPrototype(prototype:Pogoprotos.Networking.Requests.Messages.CollectDailyDefenderBonusMessage) throws -> Pogoprotos.Networking.Requests.Messages.CollectDailyDefenderBonusMessage.Builder {
      return try Pogoprotos.Networking.Requests.Messages.CollectDailyDefenderBonusMessage.Builder().mergeFrom(prototype)
    }
    override public func encode() throws -> Dictionary<String,AnyObject> {
      guard isInitialized() else {
        throw ProtocolBuffersError.InvalidProtocolBuffer("Uninitialized Message")
      }

      let jsonMap:Dictionary<String,AnyObject> = Dictionary<String,AnyObject>()
      return jsonMap
    }
    override class public func decode(jsonMap:Dictionary<String,AnyObject>) throws -> Pogoprotos.Networking.Requests.Messages.CollectDailyDefenderBonusMessage {
      return try Pogoprotos.Networking.Requests.Messages.CollectDailyDefenderBonusMessage.Builder.decodeToBuilder(jsonMap).build()
    }
    override class public func fromJSON(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.CollectDailyDefenderBonusMessage {
      return try Pogoprotos.Networking.Requests.Messages.CollectDailyDefenderBonusMessage.Builder.fromJSONToBuilder(data).build()
    }
    override public func getDescription(indent:String) throws -> String {
      var output = ""
      output += unknownFields.getDescription(indent)
      return output
    }
    override public var hashValue:Int {
        get {
            var hashCode:Int = 7
            hashCode = (hashCode &* 31) &+  unknownFields.hashValue
            return hashCode
        }
    }


    //Meta information declaration start

    override public class func className() -> String {
        return "Pogoprotos.Networking.Requests.Messages.CollectDailyDefenderBonusMessage"
    }
    override public func className() -> String {
        return "Pogoprotos.Networking.Requests.Messages.CollectDailyDefenderBonusMessage"
    }
    override public func classMetaType() -> GeneratedMessage.Type {
        return Pogoprotos.Networking.Requests.Messages.CollectDailyDefenderBonusMessage.self
    }
    //Meta information declaration end

    final public class Builder : GeneratedMessageBuilder {
      private var builderResult:Pogoprotos.Networking.Requests.Messages.CollectDailyDefenderBonusMessage = Pogoprotos.Networking.Requests.Messages.CollectDailyDefenderBonusMessage()
      public func getMessage() -> Pogoprotos.Networking.Requests.Messages.CollectDailyDefenderBonusMessage {
          return builderResult
      }

      required override public init () {
         super.init()
      }
      override public var internalGetResult:GeneratedMessage {
           get {
              return builderResult
           }
      }
      override public func clear() -> Pogoprotos.Networking.Requests.Messages.CollectDailyDefenderBonusMessage.Builder {
        builderResult = Pogoprotos.Networking.Requests.Messages.CollectDailyDefenderBonusMessage()
        return self
      }
      override public func clone() throws -> Pogoprotos.Networking.Requests.Messages.CollectDailyDefenderBonusMessage.Builder {
        return try Pogoprotos.Networking.Requests.Messages.CollectDailyDefenderBonusMessage.builderWithPrototype(builderResult)
      }
      override public func build() throws -> Pogoprotos.Networking.Requests.Messages.CollectDailyDefenderBonusMessage {
           try checkInitialized()
           return buildPartial()
      }
      public func buildPartial() -> Pogoprotos.Networking.Requests.Messages.CollectDailyDefenderBonusMessage {
        let returnMe:Pogoprotos.Networking.Requests.Messages.CollectDailyDefenderBonusMessage = builderResult
        return returnMe
      }
      public func mergeFrom(other:Pogoprotos.Networking.Requests.Messages.CollectDailyDefenderBonusMessage) throws -> Pogoprotos.Networking.Requests.Messages.CollectDailyDefenderBonusMessage.Builder {
        if other == Pogoprotos.Networking.Requests.Messages.CollectDailyDefenderBonusMessage() {
         return self
        }
        try mergeUnknownFields(other.unknownFields)
        return self
      }
      override public func mergeFromCodedInputStream(input:CodedInputStream) throws -> Pogoprotos.Networking.Requests.Messages.CollectDailyDefenderBonusMessage.Builder {
           return try mergeFromCodedInputStream(input, extensionRegistry:ExtensionRegistry())
      }
      override public func mergeFromCodedInputStream(input:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.CollectDailyDefenderBonusMessage.Builder {
        let unknownFieldsBuilder:UnknownFieldSet.Builder = try UnknownFieldSet.builderWithUnknownFields(self.unknownFields)
        while (true) {
          let protobufTag = try input.readTag()
          switch protobufTag {
          case 0: 
            self.unknownFields = try unknownFieldsBuilder.build()
            return self

          default:
            if (!(try parseUnknownField(input,unknownFields:unknownFieldsBuilder, extensionRegistry:extensionRegistry, tag:protobufTag))) {
               unknownFields = try unknownFieldsBuilder.build()
               return self
            }
          }
        }
      }
      override class public func decodeToBuilder(jsonMap:Dictionary<String,AnyObject>) throws -> Pogoprotos.Networking.Requests.Messages.CollectDailyDefenderBonusMessage.Builder {
        let resultDecodedBuilder = Pogoprotos.Networking.Requests.Messages.CollectDailyDefenderBonusMessage.Builder()
        return resultDecodedBuilder
      }
      override class public func fromJSONToBuilder(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.CollectDailyDefenderBonusMessage.Builder {
        let jsonData = try NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions(rawValue: 0))
        guard let jsDataCast = jsonData as? Dictionary<String,AnyObject> else {
          throw ProtocolBuffersError.InvalidProtocolBuffer("Invalid JSON data")
        }
        return try Pogoprotos.Networking.Requests.Messages.CollectDailyDefenderBonusMessage.Builder.decodeToBuilder(jsDataCast)
      }
    }

  }

  final public class DiskEncounterMessage : GeneratedMessage, GeneratedMessageProtocol {
    public private(set) var hasEncounterId:Bool = false
    public private(set) var encounterId:UInt64 = UInt64(0)

    public private(set) var hasFortId:Bool = false
    public private(set) var fortId:String = ""

    public private(set) var hasPlayerLatitude:Bool = false
    public private(set) var playerLatitude:Double = Double(0)

    public private(set) var hasPlayerLongitude:Bool = false
    public private(set) var playerLongitude:Double = Double(0)

    required public init() {
         super.init()
    }
    override public func isInitialized() -> Bool {
     return true
    }
    override public func writeToCodedOutputStream(output:CodedOutputStream) throws {
      if hasEncounterId {
        try output.writeUInt64(1, value:encounterId)
      }
      if hasFortId {
        try output.writeString(2, value:fortId)
      }
      if hasPlayerLatitude {
        try output.writeDouble(3, value:playerLatitude)
      }
      if hasPlayerLongitude {
        try output.writeDouble(4, value:playerLongitude)
      }
      try unknownFields.writeToCodedOutputStream(output)
    }
    override public func serializedSize() -> Int32 {
      var serialize_size:Int32 = memoizedSerializedSize
      if serialize_size != -1 {
       return serialize_size
      }

      serialize_size = 0
      if hasEncounterId {
        serialize_size += encounterId.computeUInt64Size(1)
      }
      if hasFortId {
        serialize_size += fortId.computeStringSize(2)
      }
      if hasPlayerLatitude {
        serialize_size += playerLatitude.computeDoubleSize(3)
      }
      if hasPlayerLongitude {
        serialize_size += playerLongitude.computeDoubleSize(4)
      }
      serialize_size += unknownFields.serializedSize()
      memoizedSerializedSize = serialize_size
      return serialize_size
    }
    public class func parseArrayDelimitedFromInputStream(input:NSInputStream) throws -> Array<Pogoprotos.Networking.Requests.Messages.DiskEncounterMessage> {
      var mergedArray = Array<Pogoprotos.Networking.Requests.Messages.DiskEncounterMessage>()
      while let value = try parseFromDelimitedFromInputStream(input) {
        mergedArray += [value]
      }
      return mergedArray
    }
    public class func parseFromDelimitedFromInputStream(input:NSInputStream) throws -> Pogoprotos.Networking.Requests.Messages.DiskEncounterMessage? {
      return try Pogoprotos.Networking.Requests.Messages.DiskEncounterMessage.Builder().mergeDelimitedFromInputStream(input)?.build()
    }
    public class func parseFromData(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.DiskEncounterMessage {
      return try Pogoprotos.Networking.Requests.Messages.DiskEncounterMessage.Builder().mergeFromData(data, extensionRegistry:Pogoprotos.Networking.Requests.Messages.PogoprotosNetworkingRequestsMessagesRoot.sharedInstance.extensionRegistry).build()
    }
    public class func parseFromData(data:NSData, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.DiskEncounterMessage {
      return try Pogoprotos.Networking.Requests.Messages.DiskEncounterMessage.Builder().mergeFromData(data, extensionRegistry:extensionRegistry).build()
    }
    public class func parseFromInputStream(input:NSInputStream) throws -> Pogoprotos.Networking.Requests.Messages.DiskEncounterMessage {
      return try Pogoprotos.Networking.Requests.Messages.DiskEncounterMessage.Builder().mergeFromInputStream(input).build()
    }
    public class func parseFromInputStream(input:NSInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.DiskEncounterMessage {
      return try Pogoprotos.Networking.Requests.Messages.DiskEncounterMessage.Builder().mergeFromInputStream(input, extensionRegistry:extensionRegistry).build()
    }
    public class func parseFromCodedInputStream(input:CodedInputStream) throws -> Pogoprotos.Networking.Requests.Messages.DiskEncounterMessage {
      return try Pogoprotos.Networking.Requests.Messages.DiskEncounterMessage.Builder().mergeFromCodedInputStream(input).build()
    }
    public class func parseFromCodedInputStream(input:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.DiskEncounterMessage {
      return try Pogoprotos.Networking.Requests.Messages.DiskEncounterMessage.Builder().mergeFromCodedInputStream(input, extensionRegistry:extensionRegistry).build()
    }
    public class func getBuilder() -> Pogoprotos.Networking.Requests.Messages.DiskEncounterMessage.Builder {
      return Pogoprotos.Networking.Requests.Messages.DiskEncounterMessage.classBuilder() as! Pogoprotos.Networking.Requests.Messages.DiskEncounterMessage.Builder
    }
    public func getBuilder() -> Pogoprotos.Networking.Requests.Messages.DiskEncounterMessage.Builder {
      return classBuilder() as! Pogoprotos.Networking.Requests.Messages.DiskEncounterMessage.Builder
    }
    override public class func classBuilder() -> MessageBuilder {
      return Pogoprotos.Networking.Requests.Messages.DiskEncounterMessage.Builder()
    }
    override public func classBuilder() -> MessageBuilder {
      return Pogoprotos.Networking.Requests.Messages.DiskEncounterMessage.Builder()
    }
    public func toBuilder() throws -> Pogoprotos.Networking.Requests.Messages.DiskEncounterMessage.Builder {
      return try Pogoprotos.Networking.Requests.Messages.DiskEncounterMessage.builderWithPrototype(self)
    }
    public class func builderWithPrototype(prototype:Pogoprotos.Networking.Requests.Messages.DiskEncounterMessage) throws -> Pogoprotos.Networking.Requests.Messages.DiskEncounterMessage.Builder {
      return try Pogoprotos.Networking.Requests.Messages.DiskEncounterMessage.Builder().mergeFrom(prototype)
    }
    override public func encode() throws -> Dictionary<String,AnyObject> {
      guard isInitialized() else {
        throw ProtocolBuffersError.InvalidProtocolBuffer("Uninitialized Message")
      }

      var jsonMap:Dictionary<String,AnyObject> = Dictionary<String,AnyObject>()
      if hasEncounterId {
        jsonMap["encounterId"] = "\(encounterId)"
      }
      if hasFortId {
        jsonMap["fortId"] = fortId
      }
      if hasPlayerLatitude {
        jsonMap["playerLatitude"] = NSNumber(double:playerLatitude)
      }
      if hasPlayerLongitude {
        jsonMap["playerLongitude"] = NSNumber(double:playerLongitude)
      }
      return jsonMap
    }
    override class public func decode(jsonMap:Dictionary<String,AnyObject>) throws -> Pogoprotos.Networking.Requests.Messages.DiskEncounterMessage {
      return try Pogoprotos.Networking.Requests.Messages.DiskEncounterMessage.Builder.decodeToBuilder(jsonMap).build()
    }
    override class public func fromJSON(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.DiskEncounterMessage {
      return try Pogoprotos.Networking.Requests.Messages.DiskEncounterMessage.Builder.fromJSONToBuilder(data).build()
    }
    override public func getDescription(indent:String) throws -> String {
      var output = ""
      if hasEncounterId {
        output += "\(indent) encounterId: \(encounterId) \n"
      }
      if hasFortId {
        output += "\(indent) fortId: \(fortId) \n"
      }
      if hasPlayerLatitude {
        output += "\(indent) playerLatitude: \(playerLatitude) \n"
      }
      if hasPlayerLongitude {
        output += "\(indent) playerLongitude: \(playerLongitude) \n"
      }
      output += unknownFields.getDescription(indent)
      return output
    }
    override public var hashValue:Int {
        get {
            var hashCode:Int = 7
            if hasEncounterId {
               hashCode = (hashCode &* 31) &+ encounterId.hashValue
            }
            if hasFortId {
               hashCode = (hashCode &* 31) &+ fortId.hashValue
            }
            if hasPlayerLatitude {
               hashCode = (hashCode &* 31) &+ playerLatitude.hashValue
            }
            if hasPlayerLongitude {
               hashCode = (hashCode &* 31) &+ playerLongitude.hashValue
            }
            hashCode = (hashCode &* 31) &+  unknownFields.hashValue
            return hashCode
        }
    }


    //Meta information declaration start

    override public class func className() -> String {
        return "Pogoprotos.Networking.Requests.Messages.DiskEncounterMessage"
    }
    override public func className() -> String {
        return "Pogoprotos.Networking.Requests.Messages.DiskEncounterMessage"
    }
    override public func classMetaType() -> GeneratedMessage.Type {
        return Pogoprotos.Networking.Requests.Messages.DiskEncounterMessage.self
    }
    //Meta information declaration end

    final public class Builder : GeneratedMessageBuilder {
      private var builderResult:Pogoprotos.Networking.Requests.Messages.DiskEncounterMessage = Pogoprotos.Networking.Requests.Messages.DiskEncounterMessage()
      public func getMessage() -> Pogoprotos.Networking.Requests.Messages.DiskEncounterMessage {
          return builderResult
      }

      required override public init () {
         super.init()
      }
      public var hasEncounterId:Bool {
           get {
                return builderResult.hasEncounterId
           }
      }
      public var encounterId:UInt64 {
           get {
                return builderResult.encounterId
           }
           set (value) {
               builderResult.hasEncounterId = true
               builderResult.encounterId = value
           }
      }
      public func setEncounterId(value:UInt64) -> Pogoprotos.Networking.Requests.Messages.DiskEncounterMessage.Builder {
        self.encounterId = value
        return self
      }
      public func clearEncounterId() -> Pogoprotos.Networking.Requests.Messages.DiskEncounterMessage.Builder{
           builderResult.hasEncounterId = false
           builderResult.encounterId = UInt64(0)
           return self
      }
      public var hasFortId:Bool {
           get {
                return builderResult.hasFortId
           }
      }
      public var fortId:String {
           get {
                return builderResult.fortId
           }
           set (value) {
               builderResult.hasFortId = true
               builderResult.fortId = value
           }
      }
      public func setFortId(value:String) -> Pogoprotos.Networking.Requests.Messages.DiskEncounterMessage.Builder {
        self.fortId = value
        return self
      }
      public func clearFortId() -> Pogoprotos.Networking.Requests.Messages.DiskEncounterMessage.Builder{
           builderResult.hasFortId = false
           builderResult.fortId = ""
           return self
      }
      public var hasPlayerLatitude:Bool {
           get {
                return builderResult.hasPlayerLatitude
           }
      }
      public var playerLatitude:Double {
           get {
                return builderResult.playerLatitude
           }
           set (value) {
               builderResult.hasPlayerLatitude = true
               builderResult.playerLatitude = value
           }
      }
      public func setPlayerLatitude(value:Double) -> Pogoprotos.Networking.Requests.Messages.DiskEncounterMessage.Builder {
        self.playerLatitude = value
        return self
      }
      public func clearPlayerLatitude() -> Pogoprotos.Networking.Requests.Messages.DiskEncounterMessage.Builder{
           builderResult.hasPlayerLatitude = false
           builderResult.playerLatitude = Double(0)
           return self
      }
      public var hasPlayerLongitude:Bool {
           get {
                return builderResult.hasPlayerLongitude
           }
      }
      public var playerLongitude:Double {
           get {
                return builderResult.playerLongitude
           }
           set (value) {
               builderResult.hasPlayerLongitude = true
               builderResult.playerLongitude = value
           }
      }
      public func setPlayerLongitude(value:Double) -> Pogoprotos.Networking.Requests.Messages.DiskEncounterMessage.Builder {
        self.playerLongitude = value
        return self
      }
      public func clearPlayerLongitude() -> Pogoprotos.Networking.Requests.Messages.DiskEncounterMessage.Builder{
           builderResult.hasPlayerLongitude = false
           builderResult.playerLongitude = Double(0)
           return self
      }
      override public var internalGetResult:GeneratedMessage {
           get {
              return builderResult
           }
      }
      override public func clear() -> Pogoprotos.Networking.Requests.Messages.DiskEncounterMessage.Builder {
        builderResult = Pogoprotos.Networking.Requests.Messages.DiskEncounterMessage()
        return self
      }
      override public func clone() throws -> Pogoprotos.Networking.Requests.Messages.DiskEncounterMessage.Builder {
        return try Pogoprotos.Networking.Requests.Messages.DiskEncounterMessage.builderWithPrototype(builderResult)
      }
      override public func build() throws -> Pogoprotos.Networking.Requests.Messages.DiskEncounterMessage {
           try checkInitialized()
           return buildPartial()
      }
      public func buildPartial() -> Pogoprotos.Networking.Requests.Messages.DiskEncounterMessage {
        let returnMe:Pogoprotos.Networking.Requests.Messages.DiskEncounterMessage = builderResult
        return returnMe
      }
      public func mergeFrom(other:Pogoprotos.Networking.Requests.Messages.DiskEncounterMessage) throws -> Pogoprotos.Networking.Requests.Messages.DiskEncounterMessage.Builder {
        if other == Pogoprotos.Networking.Requests.Messages.DiskEncounterMessage() {
         return self
        }
        if other.hasEncounterId {
             encounterId = other.encounterId
        }
        if other.hasFortId {
             fortId = other.fortId
        }
        if other.hasPlayerLatitude {
             playerLatitude = other.playerLatitude
        }
        if other.hasPlayerLongitude {
             playerLongitude = other.playerLongitude
        }
        try mergeUnknownFields(other.unknownFields)
        return self
      }
      override public func mergeFromCodedInputStream(input:CodedInputStream) throws -> Pogoprotos.Networking.Requests.Messages.DiskEncounterMessage.Builder {
           return try mergeFromCodedInputStream(input, extensionRegistry:ExtensionRegistry())
      }
      override public func mergeFromCodedInputStream(input:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.DiskEncounterMessage.Builder {
        let unknownFieldsBuilder:UnknownFieldSet.Builder = try UnknownFieldSet.builderWithUnknownFields(self.unknownFields)
        while (true) {
          let protobufTag = try input.readTag()
          switch protobufTag {
          case 0: 
            self.unknownFields = try unknownFieldsBuilder.build()
            return self

          case 8:
            encounterId = try input.readUInt64()

          case 18:
            fortId = try input.readString()

          case 25:
            playerLatitude = try input.readDouble()

          case 33:
            playerLongitude = try input.readDouble()

          default:
            if (!(try parseUnknownField(input,unknownFields:unknownFieldsBuilder, extensionRegistry:extensionRegistry, tag:protobufTag))) {
               unknownFields = try unknownFieldsBuilder.build()
               return self
            }
          }
        }
      }
      override class public func decodeToBuilder(jsonMap:Dictionary<String,AnyObject>) throws -> Pogoprotos.Networking.Requests.Messages.DiskEncounterMessage.Builder {
        let resultDecodedBuilder = Pogoprotos.Networking.Requests.Messages.DiskEncounterMessage.Builder()
        if let jsonValueEncounterId = jsonMap["encounterId"] as? String {
          resultDecodedBuilder.encounterId = UInt64(jsonValueEncounterId)!
        }
        if let jsonValueFortId = jsonMap["fortId"] as? String {
          resultDecodedBuilder.fortId = jsonValueFortId
        }
        if let jsonValuePlayerLatitude = jsonMap["playerLatitude"] as? NSNumber {
          resultDecodedBuilder.playerLatitude = jsonValuePlayerLatitude.doubleValue
        }
        if let jsonValuePlayerLongitude = jsonMap["playerLongitude"] as? NSNumber {
          resultDecodedBuilder.playerLongitude = jsonValuePlayerLongitude.doubleValue
        }
        return resultDecodedBuilder
      }
      override class public func fromJSONToBuilder(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.DiskEncounterMessage.Builder {
        let jsonData = try NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions(rawValue: 0))
        guard let jsDataCast = jsonData as? Dictionary<String,AnyObject> else {
          throw ProtocolBuffersError.InvalidProtocolBuffer("Invalid JSON data")
        }
        return try Pogoprotos.Networking.Requests.Messages.DiskEncounterMessage.Builder.decodeToBuilder(jsDataCast)
      }
    }

  }

  // No message needed.
  final public class DownloadItemTemplatesMessage : GeneratedMessage, GeneratedMessageProtocol {
    required public init() {
         super.init()
    }
    override public func isInitialized() -> Bool {
     return true
    }
    override public func writeToCodedOutputStream(output:CodedOutputStream) throws {
      try unknownFields.writeToCodedOutputStream(output)
    }
    override public func serializedSize() -> Int32 {
      var serialize_size:Int32 = memoizedSerializedSize
      if serialize_size != -1 {
       return serialize_size
      }

      serialize_size = 0
      serialize_size += unknownFields.serializedSize()
      memoizedSerializedSize = serialize_size
      return serialize_size
    }
    public class func parseArrayDelimitedFromInputStream(input:NSInputStream) throws -> Array<Pogoprotos.Networking.Requests.Messages.DownloadItemTemplatesMessage> {
      var mergedArray = Array<Pogoprotos.Networking.Requests.Messages.DownloadItemTemplatesMessage>()
      while let value = try parseFromDelimitedFromInputStream(input) {
        mergedArray += [value]
      }
      return mergedArray
    }
    public class func parseFromDelimitedFromInputStream(input:NSInputStream) throws -> Pogoprotos.Networking.Requests.Messages.DownloadItemTemplatesMessage? {
      return try Pogoprotos.Networking.Requests.Messages.DownloadItemTemplatesMessage.Builder().mergeDelimitedFromInputStream(input)?.build()
    }
    public class func parseFromData(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.DownloadItemTemplatesMessage {
      return try Pogoprotos.Networking.Requests.Messages.DownloadItemTemplatesMessage.Builder().mergeFromData(data, extensionRegistry:Pogoprotos.Networking.Requests.Messages.PogoprotosNetworkingRequestsMessagesRoot.sharedInstance.extensionRegistry).build()
    }
    public class func parseFromData(data:NSData, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.DownloadItemTemplatesMessage {
      return try Pogoprotos.Networking.Requests.Messages.DownloadItemTemplatesMessage.Builder().mergeFromData(data, extensionRegistry:extensionRegistry).build()
    }
    public class func parseFromInputStream(input:NSInputStream) throws -> Pogoprotos.Networking.Requests.Messages.DownloadItemTemplatesMessage {
      return try Pogoprotos.Networking.Requests.Messages.DownloadItemTemplatesMessage.Builder().mergeFromInputStream(input).build()
    }
    public class func parseFromInputStream(input:NSInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.DownloadItemTemplatesMessage {
      return try Pogoprotos.Networking.Requests.Messages.DownloadItemTemplatesMessage.Builder().mergeFromInputStream(input, extensionRegistry:extensionRegistry).build()
    }
    public class func parseFromCodedInputStream(input:CodedInputStream) throws -> Pogoprotos.Networking.Requests.Messages.DownloadItemTemplatesMessage {
      return try Pogoprotos.Networking.Requests.Messages.DownloadItemTemplatesMessage.Builder().mergeFromCodedInputStream(input).build()
    }
    public class func parseFromCodedInputStream(input:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.DownloadItemTemplatesMessage {
      return try Pogoprotos.Networking.Requests.Messages.DownloadItemTemplatesMessage.Builder().mergeFromCodedInputStream(input, extensionRegistry:extensionRegistry).build()
    }
    public class func getBuilder() -> Pogoprotos.Networking.Requests.Messages.DownloadItemTemplatesMessage.Builder {
      return Pogoprotos.Networking.Requests.Messages.DownloadItemTemplatesMessage.classBuilder() as! Pogoprotos.Networking.Requests.Messages.DownloadItemTemplatesMessage.Builder
    }
    public func getBuilder() -> Pogoprotos.Networking.Requests.Messages.DownloadItemTemplatesMessage.Builder {
      return classBuilder() as! Pogoprotos.Networking.Requests.Messages.DownloadItemTemplatesMessage.Builder
    }
    override public class func classBuilder() -> MessageBuilder {
      return Pogoprotos.Networking.Requests.Messages.DownloadItemTemplatesMessage.Builder()
    }
    override public func classBuilder() -> MessageBuilder {
      return Pogoprotos.Networking.Requests.Messages.DownloadItemTemplatesMessage.Builder()
    }
    public func toBuilder() throws -> Pogoprotos.Networking.Requests.Messages.DownloadItemTemplatesMessage.Builder {
      return try Pogoprotos.Networking.Requests.Messages.DownloadItemTemplatesMessage.builderWithPrototype(self)
    }
    public class func builderWithPrototype(prototype:Pogoprotos.Networking.Requests.Messages.DownloadItemTemplatesMessage) throws -> Pogoprotos.Networking.Requests.Messages.DownloadItemTemplatesMessage.Builder {
      return try Pogoprotos.Networking.Requests.Messages.DownloadItemTemplatesMessage.Builder().mergeFrom(prototype)
    }
    override public func encode() throws -> Dictionary<String,AnyObject> {
      guard isInitialized() else {
        throw ProtocolBuffersError.InvalidProtocolBuffer("Uninitialized Message")
      }

      let jsonMap:Dictionary<String,AnyObject> = Dictionary<String,AnyObject>()
      return jsonMap
    }
    override class public func decode(jsonMap:Dictionary<String,AnyObject>) throws -> Pogoprotos.Networking.Requests.Messages.DownloadItemTemplatesMessage {
      return try Pogoprotos.Networking.Requests.Messages.DownloadItemTemplatesMessage.Builder.decodeToBuilder(jsonMap).build()
    }
    override class public func fromJSON(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.DownloadItemTemplatesMessage {
      return try Pogoprotos.Networking.Requests.Messages.DownloadItemTemplatesMessage.Builder.fromJSONToBuilder(data).build()
    }
    override public func getDescription(indent:String) throws -> String {
      var output = ""
      output += unknownFields.getDescription(indent)
      return output
    }
    override public var hashValue:Int {
        get {
            var hashCode:Int = 7
            hashCode = (hashCode &* 31) &+  unknownFields.hashValue
            return hashCode
        }
    }


    //Meta information declaration start

    override public class func className() -> String {
        return "Pogoprotos.Networking.Requests.Messages.DownloadItemTemplatesMessage"
    }
    override public func className() -> String {
        return "Pogoprotos.Networking.Requests.Messages.DownloadItemTemplatesMessage"
    }
    override public func classMetaType() -> GeneratedMessage.Type {
        return Pogoprotos.Networking.Requests.Messages.DownloadItemTemplatesMessage.self
    }
    //Meta information declaration end

    final public class Builder : GeneratedMessageBuilder {
      private var builderResult:Pogoprotos.Networking.Requests.Messages.DownloadItemTemplatesMessage = Pogoprotos.Networking.Requests.Messages.DownloadItemTemplatesMessage()
      public func getMessage() -> Pogoprotos.Networking.Requests.Messages.DownloadItemTemplatesMessage {
          return builderResult
      }

      required override public init () {
         super.init()
      }
      override public var internalGetResult:GeneratedMessage {
           get {
              return builderResult
           }
      }
      override public func clear() -> Pogoprotos.Networking.Requests.Messages.DownloadItemTemplatesMessage.Builder {
        builderResult = Pogoprotos.Networking.Requests.Messages.DownloadItemTemplatesMessage()
        return self
      }
      override public func clone() throws -> Pogoprotos.Networking.Requests.Messages.DownloadItemTemplatesMessage.Builder {
        return try Pogoprotos.Networking.Requests.Messages.DownloadItemTemplatesMessage.builderWithPrototype(builderResult)
      }
      override public func build() throws -> Pogoprotos.Networking.Requests.Messages.DownloadItemTemplatesMessage {
           try checkInitialized()
           return buildPartial()
      }
      public func buildPartial() -> Pogoprotos.Networking.Requests.Messages.DownloadItemTemplatesMessage {
        let returnMe:Pogoprotos.Networking.Requests.Messages.DownloadItemTemplatesMessage = builderResult
        return returnMe
      }
      public func mergeFrom(other:Pogoprotos.Networking.Requests.Messages.DownloadItemTemplatesMessage) throws -> Pogoprotos.Networking.Requests.Messages.DownloadItemTemplatesMessage.Builder {
        if other == Pogoprotos.Networking.Requests.Messages.DownloadItemTemplatesMessage() {
         return self
        }
        try mergeUnknownFields(other.unknownFields)
        return self
      }
      override public func mergeFromCodedInputStream(input:CodedInputStream) throws -> Pogoprotos.Networking.Requests.Messages.DownloadItemTemplatesMessage.Builder {
           return try mergeFromCodedInputStream(input, extensionRegistry:ExtensionRegistry())
      }
      override public func mergeFromCodedInputStream(input:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.DownloadItemTemplatesMessage.Builder {
        let unknownFieldsBuilder:UnknownFieldSet.Builder = try UnknownFieldSet.builderWithUnknownFields(self.unknownFields)
        while (true) {
          let protobufTag = try input.readTag()
          switch protobufTag {
          case 0: 
            self.unknownFields = try unknownFieldsBuilder.build()
            return self

          default:
            if (!(try parseUnknownField(input,unknownFields:unknownFieldsBuilder, extensionRegistry:extensionRegistry, tag:protobufTag))) {
               unknownFields = try unknownFieldsBuilder.build()
               return self
            }
          }
        }
      }
      override class public func decodeToBuilder(jsonMap:Dictionary<String,AnyObject>) throws -> Pogoprotos.Networking.Requests.Messages.DownloadItemTemplatesMessage.Builder {
        let resultDecodedBuilder = Pogoprotos.Networking.Requests.Messages.DownloadItemTemplatesMessage.Builder()
        return resultDecodedBuilder
      }
      override class public func fromJSONToBuilder(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.DownloadItemTemplatesMessage.Builder {
        let jsonData = try NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions(rawValue: 0))
        guard let jsDataCast = jsonData as? Dictionary<String,AnyObject> else {
          throw ProtocolBuffersError.InvalidProtocolBuffer("Invalid JSON data")
        }
        return try Pogoprotos.Networking.Requests.Messages.DownloadItemTemplatesMessage.Builder.decodeToBuilder(jsDataCast)
      }
    }

  }

  final public class DownloadRemoteConfigVersionMessage : GeneratedMessage, GeneratedMessageProtocol {
    public private(set) var platform:Pogoprotos.Enums.Platform = Pogoprotos.Enums.Platform.Unset
    public private(set) var hasPlatform:Bool = false
    public private(set) var hasDeviceManufacturer:Bool = false
    public private(set) var deviceManufacturer:String = ""

    public private(set) var hasDeviceModel:Bool = false
    public private(set) var deviceModel:String = ""

    public private(set) var hasLocale:Bool = false
    public private(set) var locale:String = ""

    public private(set) var hasAppVersion:Bool = false
    public private(set) var appVersion:UInt32 = UInt32(0)

    required public init() {
         super.init()
    }
    override public func isInitialized() -> Bool {
     return true
    }
    override public func writeToCodedOutputStream(output:CodedOutputStream) throws {
      if hasPlatform {
        try output.writeEnum(1, value:platform.rawValue)
      }
      if hasDeviceManufacturer {
        try output.writeString(2, value:deviceManufacturer)
      }
      if hasDeviceModel {
        try output.writeString(3, value:deviceModel)
      }
      if hasLocale {
        try output.writeString(4, value:locale)
      }
      if hasAppVersion {
        try output.writeUInt32(5, value:appVersion)
      }
      try unknownFields.writeToCodedOutputStream(output)
    }
    override public func serializedSize() -> Int32 {
      var serialize_size:Int32 = memoizedSerializedSize
      if serialize_size != -1 {
       return serialize_size
      }

      serialize_size = 0
      if (hasPlatform) {
        serialize_size += platform.rawValue.computeEnumSize(1)
      }
      if hasDeviceManufacturer {
        serialize_size += deviceManufacturer.computeStringSize(2)
      }
      if hasDeviceModel {
        serialize_size += deviceModel.computeStringSize(3)
      }
      if hasLocale {
        serialize_size += locale.computeStringSize(4)
      }
      if hasAppVersion {
        serialize_size += appVersion.computeUInt32Size(5)
      }
      serialize_size += unknownFields.serializedSize()
      memoizedSerializedSize = serialize_size
      return serialize_size
    }
    public class func parseArrayDelimitedFromInputStream(input:NSInputStream) throws -> Array<Pogoprotos.Networking.Requests.Messages.DownloadRemoteConfigVersionMessage> {
      var mergedArray = Array<Pogoprotos.Networking.Requests.Messages.DownloadRemoteConfigVersionMessage>()
      while let value = try parseFromDelimitedFromInputStream(input) {
        mergedArray += [value]
      }
      return mergedArray
    }
    public class func parseFromDelimitedFromInputStream(input:NSInputStream) throws -> Pogoprotos.Networking.Requests.Messages.DownloadRemoteConfigVersionMessage? {
      return try Pogoprotos.Networking.Requests.Messages.DownloadRemoteConfigVersionMessage.Builder().mergeDelimitedFromInputStream(input)?.build()
    }
    public class func parseFromData(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.DownloadRemoteConfigVersionMessage {
      return try Pogoprotos.Networking.Requests.Messages.DownloadRemoteConfigVersionMessage.Builder().mergeFromData(data, extensionRegistry:Pogoprotos.Networking.Requests.Messages.PogoprotosNetworkingRequestsMessagesRoot.sharedInstance.extensionRegistry).build()
    }
    public class func parseFromData(data:NSData, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.DownloadRemoteConfigVersionMessage {
      return try Pogoprotos.Networking.Requests.Messages.DownloadRemoteConfigVersionMessage.Builder().mergeFromData(data, extensionRegistry:extensionRegistry).build()
    }
    public class func parseFromInputStream(input:NSInputStream) throws -> Pogoprotos.Networking.Requests.Messages.DownloadRemoteConfigVersionMessage {
      return try Pogoprotos.Networking.Requests.Messages.DownloadRemoteConfigVersionMessage.Builder().mergeFromInputStream(input).build()
    }
    public class func parseFromInputStream(input:NSInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.DownloadRemoteConfigVersionMessage {
      return try Pogoprotos.Networking.Requests.Messages.DownloadRemoteConfigVersionMessage.Builder().mergeFromInputStream(input, extensionRegistry:extensionRegistry).build()
    }
    public class func parseFromCodedInputStream(input:CodedInputStream) throws -> Pogoprotos.Networking.Requests.Messages.DownloadRemoteConfigVersionMessage {
      return try Pogoprotos.Networking.Requests.Messages.DownloadRemoteConfigVersionMessage.Builder().mergeFromCodedInputStream(input).build()
    }
    public class func parseFromCodedInputStream(input:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.DownloadRemoteConfigVersionMessage {
      return try Pogoprotos.Networking.Requests.Messages.DownloadRemoteConfigVersionMessage.Builder().mergeFromCodedInputStream(input, extensionRegistry:extensionRegistry).build()
    }
    public class func getBuilder() -> Pogoprotos.Networking.Requests.Messages.DownloadRemoteConfigVersionMessage.Builder {
      return Pogoprotos.Networking.Requests.Messages.DownloadRemoteConfigVersionMessage.classBuilder() as! Pogoprotos.Networking.Requests.Messages.DownloadRemoteConfigVersionMessage.Builder
    }
    public func getBuilder() -> Pogoprotos.Networking.Requests.Messages.DownloadRemoteConfigVersionMessage.Builder {
      return classBuilder() as! Pogoprotos.Networking.Requests.Messages.DownloadRemoteConfigVersionMessage.Builder
    }
    override public class func classBuilder() -> MessageBuilder {
      return Pogoprotos.Networking.Requests.Messages.DownloadRemoteConfigVersionMessage.Builder()
    }
    override public func classBuilder() -> MessageBuilder {
      return Pogoprotos.Networking.Requests.Messages.DownloadRemoteConfigVersionMessage.Builder()
    }
    public func toBuilder() throws -> Pogoprotos.Networking.Requests.Messages.DownloadRemoteConfigVersionMessage.Builder {
      return try Pogoprotos.Networking.Requests.Messages.DownloadRemoteConfigVersionMessage.builderWithPrototype(self)
    }
    public class func builderWithPrototype(prototype:Pogoprotos.Networking.Requests.Messages.DownloadRemoteConfigVersionMessage) throws -> Pogoprotos.Networking.Requests.Messages.DownloadRemoteConfigVersionMessage.Builder {
      return try Pogoprotos.Networking.Requests.Messages.DownloadRemoteConfigVersionMessage.Builder().mergeFrom(prototype)
    }
    override public func encode() throws -> Dictionary<String,AnyObject> {
      guard isInitialized() else {
        throw ProtocolBuffersError.InvalidProtocolBuffer("Uninitialized Message")
      }

      var jsonMap:Dictionary<String,AnyObject> = Dictionary<String,AnyObject>()
      if hasPlatform {
        jsonMap["platform"] = platform.toString()
      }
      if hasDeviceManufacturer {
        jsonMap["deviceManufacturer"] = deviceManufacturer
      }
      if hasDeviceModel {
        jsonMap["deviceModel"] = deviceModel
      }
      if hasLocale {
        jsonMap["locale"] = locale
      }
      if hasAppVersion {
        jsonMap["appVersion"] = NSNumber(unsignedInt:appVersion)
      }
      return jsonMap
    }
    override class public func decode(jsonMap:Dictionary<String,AnyObject>) throws -> Pogoprotos.Networking.Requests.Messages.DownloadRemoteConfigVersionMessage {
      return try Pogoprotos.Networking.Requests.Messages.DownloadRemoteConfigVersionMessage.Builder.decodeToBuilder(jsonMap).build()
    }
    override class public func fromJSON(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.DownloadRemoteConfigVersionMessage {
      return try Pogoprotos.Networking.Requests.Messages.DownloadRemoteConfigVersionMessage.Builder.fromJSONToBuilder(data).build()
    }
    override public func getDescription(indent:String) throws -> String {
      var output = ""
      if (hasPlatform) {
        output += "\(indent) platform: \(platform.description)\n"
      }
      if hasDeviceManufacturer {
        output += "\(indent) deviceManufacturer: \(deviceManufacturer) \n"
      }
      if hasDeviceModel {
        output += "\(indent) deviceModel: \(deviceModel) \n"
      }
      if hasLocale {
        output += "\(indent) locale: \(locale) \n"
      }
      if hasAppVersion {
        output += "\(indent) appVersion: \(appVersion) \n"
      }
      output += unknownFields.getDescription(indent)
      return output
    }
    override public var hashValue:Int {
        get {
            var hashCode:Int = 7
            if hasPlatform {
               hashCode = (hashCode &* 31) &+ Int(platform.rawValue)
            }
            if hasDeviceManufacturer {
               hashCode = (hashCode &* 31) &+ deviceManufacturer.hashValue
            }
            if hasDeviceModel {
               hashCode = (hashCode &* 31) &+ deviceModel.hashValue
            }
            if hasLocale {
               hashCode = (hashCode &* 31) &+ locale.hashValue
            }
            if hasAppVersion {
               hashCode = (hashCode &* 31) &+ appVersion.hashValue
            }
            hashCode = (hashCode &* 31) &+  unknownFields.hashValue
            return hashCode
        }
    }


    //Meta information declaration start

    override public class func className() -> String {
        return "Pogoprotos.Networking.Requests.Messages.DownloadRemoteConfigVersionMessage"
    }
    override public func className() -> String {
        return "Pogoprotos.Networking.Requests.Messages.DownloadRemoteConfigVersionMessage"
    }
    override public func classMetaType() -> GeneratedMessage.Type {
        return Pogoprotos.Networking.Requests.Messages.DownloadRemoteConfigVersionMessage.self
    }
    //Meta information declaration end

    final public class Builder : GeneratedMessageBuilder {
      private var builderResult:Pogoprotos.Networking.Requests.Messages.DownloadRemoteConfigVersionMessage = Pogoprotos.Networking.Requests.Messages.DownloadRemoteConfigVersionMessage()
      public func getMessage() -> Pogoprotos.Networking.Requests.Messages.DownloadRemoteConfigVersionMessage {
          return builderResult
      }

      required override public init () {
         super.init()
      }
        public var hasPlatform:Bool{
            get {
                return builderResult.hasPlatform
            }
        }
        public var platform:Pogoprotos.Enums.Platform {
            get {
                return builderResult.platform
            }
            set (value) {
                builderResult.hasPlatform = true
                builderResult.platform = value
            }
        }
        public func setPlatform(value:Pogoprotos.Enums.Platform) -> Pogoprotos.Networking.Requests.Messages.DownloadRemoteConfigVersionMessage.Builder {
          self.platform = value
          return self
        }
        public func clearPlatform() -> Pogoprotos.Networking.Requests.Messages.DownloadRemoteConfigVersionMessage.Builder {
           builderResult.hasPlatform = false
           builderResult.platform = .Unset
           return self
        }
      public var hasDeviceManufacturer:Bool {
           get {
                return builderResult.hasDeviceManufacturer
           }
      }
      public var deviceManufacturer:String {
           get {
                return builderResult.deviceManufacturer
           }
           set (value) {
               builderResult.hasDeviceManufacturer = true
               builderResult.deviceManufacturer = value
           }
      }
      public func setDeviceManufacturer(value:String) -> Pogoprotos.Networking.Requests.Messages.DownloadRemoteConfigVersionMessage.Builder {
        self.deviceManufacturer = value
        return self
      }
      public func clearDeviceManufacturer() -> Pogoprotos.Networking.Requests.Messages.DownloadRemoteConfigVersionMessage.Builder{
           builderResult.hasDeviceManufacturer = false
           builderResult.deviceManufacturer = ""
           return self
      }
      public var hasDeviceModel:Bool {
           get {
                return builderResult.hasDeviceModel
           }
      }
      public var deviceModel:String {
           get {
                return builderResult.deviceModel
           }
           set (value) {
               builderResult.hasDeviceModel = true
               builderResult.deviceModel = value
           }
      }
      public func setDeviceModel(value:String) -> Pogoprotos.Networking.Requests.Messages.DownloadRemoteConfigVersionMessage.Builder {
        self.deviceModel = value
        return self
      }
      public func clearDeviceModel() -> Pogoprotos.Networking.Requests.Messages.DownloadRemoteConfigVersionMessage.Builder{
           builderResult.hasDeviceModel = false
           builderResult.deviceModel = ""
           return self
      }
      public var hasLocale:Bool {
           get {
                return builderResult.hasLocale
           }
      }
      public var locale:String {
           get {
                return builderResult.locale
           }
           set (value) {
               builderResult.hasLocale = true
               builderResult.locale = value
           }
      }
      public func setLocale(value:String) -> Pogoprotos.Networking.Requests.Messages.DownloadRemoteConfigVersionMessage.Builder {
        self.locale = value
        return self
      }
      public func clearLocale() -> Pogoprotos.Networking.Requests.Messages.DownloadRemoteConfigVersionMessage.Builder{
           builderResult.hasLocale = false
           builderResult.locale = ""
           return self
      }
      public var hasAppVersion:Bool {
           get {
                return builderResult.hasAppVersion
           }
      }
      public var appVersion:UInt32 {
           get {
                return builderResult.appVersion
           }
           set (value) {
               builderResult.hasAppVersion = true
               builderResult.appVersion = value
           }
      }
      public func setAppVersion(value:UInt32) -> Pogoprotos.Networking.Requests.Messages.DownloadRemoteConfigVersionMessage.Builder {
        self.appVersion = value
        return self
      }
      public func clearAppVersion() -> Pogoprotos.Networking.Requests.Messages.DownloadRemoteConfigVersionMessage.Builder{
           builderResult.hasAppVersion = false
           builderResult.appVersion = UInt32(0)
           return self
      }
      override public var internalGetResult:GeneratedMessage {
           get {
              return builderResult
           }
      }
      override public func clear() -> Pogoprotos.Networking.Requests.Messages.DownloadRemoteConfigVersionMessage.Builder {
        builderResult = Pogoprotos.Networking.Requests.Messages.DownloadRemoteConfigVersionMessage()
        return self
      }
      override public func clone() throws -> Pogoprotos.Networking.Requests.Messages.DownloadRemoteConfigVersionMessage.Builder {
        return try Pogoprotos.Networking.Requests.Messages.DownloadRemoteConfigVersionMessage.builderWithPrototype(builderResult)
      }
      override public func build() throws -> Pogoprotos.Networking.Requests.Messages.DownloadRemoteConfigVersionMessage {
           try checkInitialized()
           return buildPartial()
      }
      public func buildPartial() -> Pogoprotos.Networking.Requests.Messages.DownloadRemoteConfigVersionMessage {
        let returnMe:Pogoprotos.Networking.Requests.Messages.DownloadRemoteConfigVersionMessage = builderResult
        return returnMe
      }
      public func mergeFrom(other:Pogoprotos.Networking.Requests.Messages.DownloadRemoteConfigVersionMessage) throws -> Pogoprotos.Networking.Requests.Messages.DownloadRemoteConfigVersionMessage.Builder {
        if other == Pogoprotos.Networking.Requests.Messages.DownloadRemoteConfigVersionMessage() {
         return self
        }
        if other.hasPlatform {
             platform = other.platform
        }
        if other.hasDeviceManufacturer {
             deviceManufacturer = other.deviceManufacturer
        }
        if other.hasDeviceModel {
             deviceModel = other.deviceModel
        }
        if other.hasLocale {
             locale = other.locale
        }
        if other.hasAppVersion {
             appVersion = other.appVersion
        }
        try mergeUnknownFields(other.unknownFields)
        return self
      }
      override public func mergeFromCodedInputStream(input:CodedInputStream) throws -> Pogoprotos.Networking.Requests.Messages.DownloadRemoteConfigVersionMessage.Builder {
           return try mergeFromCodedInputStream(input, extensionRegistry:ExtensionRegistry())
      }
      override public func mergeFromCodedInputStream(input:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.DownloadRemoteConfigVersionMessage.Builder {
        let unknownFieldsBuilder:UnknownFieldSet.Builder = try UnknownFieldSet.builderWithUnknownFields(self.unknownFields)
        while (true) {
          let protobufTag = try input.readTag()
          switch protobufTag {
          case 0: 
            self.unknownFields = try unknownFieldsBuilder.build()
            return self

          case 8:
            let valueIntplatform = try input.readEnum()
            if let enumsplatform = Pogoprotos.Enums.Platform(rawValue:valueIntplatform){
                 platform = enumsplatform
            } else {
                 try unknownFieldsBuilder.mergeVarintField(1, value:Int64(valueIntplatform))
            }

          case 18:
            deviceManufacturer = try input.readString()

          case 26:
            deviceModel = try input.readString()

          case 34:
            locale = try input.readString()

          case 40:
            appVersion = try input.readUInt32()

          default:
            if (!(try parseUnknownField(input,unknownFields:unknownFieldsBuilder, extensionRegistry:extensionRegistry, tag:protobufTag))) {
               unknownFields = try unknownFieldsBuilder.build()
               return self
            }
          }
        }
      }
      override class public func decodeToBuilder(jsonMap:Dictionary<String,AnyObject>) throws -> Pogoprotos.Networking.Requests.Messages.DownloadRemoteConfigVersionMessage.Builder {
        let resultDecodedBuilder = Pogoprotos.Networking.Requests.Messages.DownloadRemoteConfigVersionMessage.Builder()
        if let jsonValuePlatform = jsonMap["platform"] as? String {
          resultDecodedBuilder.platform = try Pogoprotos.Enums.Platform.fromString(jsonValuePlatform)
        }
        if let jsonValueDeviceManufacturer = jsonMap["deviceManufacturer"] as? String {
          resultDecodedBuilder.deviceManufacturer = jsonValueDeviceManufacturer
        }
        if let jsonValueDeviceModel = jsonMap["deviceModel"] as? String {
          resultDecodedBuilder.deviceModel = jsonValueDeviceModel
        }
        if let jsonValueLocale = jsonMap["locale"] as? String {
          resultDecodedBuilder.locale = jsonValueLocale
        }
        if let jsonValueAppVersion = jsonMap["appVersion"] as? NSNumber {
          resultDecodedBuilder.appVersion = jsonValueAppVersion.unsignedIntValue
        }
        return resultDecodedBuilder
      }
      override class public func fromJSONToBuilder(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.DownloadRemoteConfigVersionMessage.Builder {
        let jsonData = try NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions(rawValue: 0))
        guard let jsDataCast = jsonData as? Dictionary<String,AnyObject> else {
          throw ProtocolBuffersError.InvalidProtocolBuffer("Invalid JSON data")
        }
        return try Pogoprotos.Networking.Requests.Messages.DownloadRemoteConfigVersionMessage.Builder.decodeToBuilder(jsDataCast)
      }
    }

  }

  final public class DownloadSettingsMessage : GeneratedMessage, GeneratedMessageProtocol {
    public private(set) var hasHash:Bool = false
    public private(set) var hash:String = ""

    required public init() {
         super.init()
    }
    override public func isInitialized() -> Bool {
     return true
    }
    override public func writeToCodedOutputStream(output:CodedOutputStream) throws {
      if hasHash {
        try output.writeString(1, value:hash)
      }
      try unknownFields.writeToCodedOutputStream(output)
    }
    override public func serializedSize() -> Int32 {
      var serialize_size:Int32 = memoizedSerializedSize
      if serialize_size != -1 {
       return serialize_size
      }

      serialize_size = 0
      if hasHash {
        serialize_size += hash.computeStringSize(1)
      }
      serialize_size += unknownFields.serializedSize()
      memoizedSerializedSize = serialize_size
      return serialize_size
    }
    public class func parseArrayDelimitedFromInputStream(input:NSInputStream) throws -> Array<Pogoprotos.Networking.Requests.Messages.DownloadSettingsMessage> {
      var mergedArray = Array<Pogoprotos.Networking.Requests.Messages.DownloadSettingsMessage>()
      while let value = try parseFromDelimitedFromInputStream(input) {
        mergedArray += [value]
      }
      return mergedArray
    }
    public class func parseFromDelimitedFromInputStream(input:NSInputStream) throws -> Pogoprotos.Networking.Requests.Messages.DownloadSettingsMessage? {
      return try Pogoprotos.Networking.Requests.Messages.DownloadSettingsMessage.Builder().mergeDelimitedFromInputStream(input)?.build()
    }
    public class func parseFromData(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.DownloadSettingsMessage {
      return try Pogoprotos.Networking.Requests.Messages.DownloadSettingsMessage.Builder().mergeFromData(data, extensionRegistry:Pogoprotos.Networking.Requests.Messages.PogoprotosNetworkingRequestsMessagesRoot.sharedInstance.extensionRegistry).build()
    }
    public class func parseFromData(data:NSData, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.DownloadSettingsMessage {
      return try Pogoprotos.Networking.Requests.Messages.DownloadSettingsMessage.Builder().mergeFromData(data, extensionRegistry:extensionRegistry).build()
    }
    public class func parseFromInputStream(input:NSInputStream) throws -> Pogoprotos.Networking.Requests.Messages.DownloadSettingsMessage {
      return try Pogoprotos.Networking.Requests.Messages.DownloadSettingsMessage.Builder().mergeFromInputStream(input).build()
    }
    public class func parseFromInputStream(input:NSInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.DownloadSettingsMessage {
      return try Pogoprotos.Networking.Requests.Messages.DownloadSettingsMessage.Builder().mergeFromInputStream(input, extensionRegistry:extensionRegistry).build()
    }
    public class func parseFromCodedInputStream(input:CodedInputStream) throws -> Pogoprotos.Networking.Requests.Messages.DownloadSettingsMessage {
      return try Pogoprotos.Networking.Requests.Messages.DownloadSettingsMessage.Builder().mergeFromCodedInputStream(input).build()
    }
    public class func parseFromCodedInputStream(input:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.DownloadSettingsMessage {
      return try Pogoprotos.Networking.Requests.Messages.DownloadSettingsMessage.Builder().mergeFromCodedInputStream(input, extensionRegistry:extensionRegistry).build()
    }
    public class func getBuilder() -> Pogoprotos.Networking.Requests.Messages.DownloadSettingsMessage.Builder {
      return Pogoprotos.Networking.Requests.Messages.DownloadSettingsMessage.classBuilder() as! Pogoprotos.Networking.Requests.Messages.DownloadSettingsMessage.Builder
    }
    public func getBuilder() -> Pogoprotos.Networking.Requests.Messages.DownloadSettingsMessage.Builder {
      return classBuilder() as! Pogoprotos.Networking.Requests.Messages.DownloadSettingsMessage.Builder
    }
    override public class func classBuilder() -> MessageBuilder {
      return Pogoprotos.Networking.Requests.Messages.DownloadSettingsMessage.Builder()
    }
    override public func classBuilder() -> MessageBuilder {
      return Pogoprotos.Networking.Requests.Messages.DownloadSettingsMessage.Builder()
    }
    public func toBuilder() throws -> Pogoprotos.Networking.Requests.Messages.DownloadSettingsMessage.Builder {
      return try Pogoprotos.Networking.Requests.Messages.DownloadSettingsMessage.builderWithPrototype(self)
    }
    public class func builderWithPrototype(prototype:Pogoprotos.Networking.Requests.Messages.DownloadSettingsMessage) throws -> Pogoprotos.Networking.Requests.Messages.DownloadSettingsMessage.Builder {
      return try Pogoprotos.Networking.Requests.Messages.DownloadSettingsMessage.Builder().mergeFrom(prototype)
    }
    override public func encode() throws -> Dictionary<String,AnyObject> {
      guard isInitialized() else {
        throw ProtocolBuffersError.InvalidProtocolBuffer("Uninitialized Message")
      }

      var jsonMap:Dictionary<String,AnyObject> = Dictionary<String,AnyObject>()
      if hasHash {
        jsonMap["hash"] = hash
      }
      return jsonMap
    }
    override class public func decode(jsonMap:Dictionary<String,AnyObject>) throws -> Pogoprotos.Networking.Requests.Messages.DownloadSettingsMessage {
      return try Pogoprotos.Networking.Requests.Messages.DownloadSettingsMessage.Builder.decodeToBuilder(jsonMap).build()
    }
    override class public func fromJSON(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.DownloadSettingsMessage {
      return try Pogoprotos.Networking.Requests.Messages.DownloadSettingsMessage.Builder.fromJSONToBuilder(data).build()
    }
    override public func getDescription(indent:String) throws -> String {
      var output = ""
      if hasHash {
        output += "\(indent) hash: \(hash) \n"
      }
      output += unknownFields.getDescription(indent)
      return output
    }
    override public var hashValue:Int {
        get {
            var hashCode:Int = 7
            if hasHash {
               hashCode = (hashCode &* 31) &+ hash.hashValue
            }
            hashCode = (hashCode &* 31) &+  unknownFields.hashValue
            return hashCode
        }
    }


    //Meta information declaration start

    override public class func className() -> String {
        return "Pogoprotos.Networking.Requests.Messages.DownloadSettingsMessage"
    }
    override public func className() -> String {
        return "Pogoprotos.Networking.Requests.Messages.DownloadSettingsMessage"
    }
    override public func classMetaType() -> GeneratedMessage.Type {
        return Pogoprotos.Networking.Requests.Messages.DownloadSettingsMessage.self
    }
    //Meta information declaration end

    final public class Builder : GeneratedMessageBuilder {
      private var builderResult:Pogoprotos.Networking.Requests.Messages.DownloadSettingsMessage = Pogoprotos.Networking.Requests.Messages.DownloadSettingsMessage()
      public func getMessage() -> Pogoprotos.Networking.Requests.Messages.DownloadSettingsMessage {
          return builderResult
      }

      required override public init () {
         super.init()
      }
      public var hasHash:Bool {
           get {
                return builderResult.hasHash
           }
      }
      public var hash:String {
           get {
                return builderResult.hash
           }
           set (value) {
               builderResult.hasHash = true
               builderResult.hash = value
           }
      }
      public func setHash(value:String) -> Pogoprotos.Networking.Requests.Messages.DownloadSettingsMessage.Builder {
        self.hash = value
        return self
      }
      public func clearHash() -> Pogoprotos.Networking.Requests.Messages.DownloadSettingsMessage.Builder{
           builderResult.hasHash = false
           builderResult.hash = ""
           return self
      }
      override public var internalGetResult:GeneratedMessage {
           get {
              return builderResult
           }
      }
      override public func clear() -> Pogoprotos.Networking.Requests.Messages.DownloadSettingsMessage.Builder {
        builderResult = Pogoprotos.Networking.Requests.Messages.DownloadSettingsMessage()
        return self
      }
      override public func clone() throws -> Pogoprotos.Networking.Requests.Messages.DownloadSettingsMessage.Builder {
        return try Pogoprotos.Networking.Requests.Messages.DownloadSettingsMessage.builderWithPrototype(builderResult)
      }
      override public func build() throws -> Pogoprotos.Networking.Requests.Messages.DownloadSettingsMessage {
           try checkInitialized()
           return buildPartial()
      }
      public func buildPartial() -> Pogoprotos.Networking.Requests.Messages.DownloadSettingsMessage {
        let returnMe:Pogoprotos.Networking.Requests.Messages.DownloadSettingsMessage = builderResult
        return returnMe
      }
      public func mergeFrom(other:Pogoprotos.Networking.Requests.Messages.DownloadSettingsMessage) throws -> Pogoprotos.Networking.Requests.Messages.DownloadSettingsMessage.Builder {
        if other == Pogoprotos.Networking.Requests.Messages.DownloadSettingsMessage() {
         return self
        }
        if other.hasHash {
             hash = other.hash
        }
        try mergeUnknownFields(other.unknownFields)
        return self
      }
      override public func mergeFromCodedInputStream(input:CodedInputStream) throws -> Pogoprotos.Networking.Requests.Messages.DownloadSettingsMessage.Builder {
           return try mergeFromCodedInputStream(input, extensionRegistry:ExtensionRegistry())
      }
      override public func mergeFromCodedInputStream(input:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.DownloadSettingsMessage.Builder {
        let unknownFieldsBuilder:UnknownFieldSet.Builder = try UnknownFieldSet.builderWithUnknownFields(self.unknownFields)
        while (true) {
          let protobufTag = try input.readTag()
          switch protobufTag {
          case 0: 
            self.unknownFields = try unknownFieldsBuilder.build()
            return self

          case 10:
            hash = try input.readString()

          default:
            if (!(try parseUnknownField(input,unknownFields:unknownFieldsBuilder, extensionRegistry:extensionRegistry, tag:protobufTag))) {
               unknownFields = try unknownFieldsBuilder.build()
               return self
            }
          }
        }
      }
      override class public func decodeToBuilder(jsonMap:Dictionary<String,AnyObject>) throws -> Pogoprotos.Networking.Requests.Messages.DownloadSettingsMessage.Builder {
        let resultDecodedBuilder = Pogoprotos.Networking.Requests.Messages.DownloadSettingsMessage.Builder()
        if let jsonValueHash = jsonMap["hash"] as? String {
          resultDecodedBuilder.hash = jsonValueHash
        }
        return resultDecodedBuilder
      }
      override class public func fromJSONToBuilder(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.DownloadSettingsMessage.Builder {
        let jsonData = try NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions(rawValue: 0))
        guard let jsDataCast = jsonData as? Dictionary<String,AnyObject> else {
          throw ProtocolBuffersError.InvalidProtocolBuffer("Invalid JSON data")
        }
        return try Pogoprotos.Networking.Requests.Messages.DownloadSettingsMessage.Builder.decodeToBuilder(jsDataCast)
      }
    }

  }

  // No message needed.
  final public class EchoMessage : GeneratedMessage, GeneratedMessageProtocol {
    required public init() {
         super.init()
    }
    override public func isInitialized() -> Bool {
     return true
    }
    override public func writeToCodedOutputStream(output:CodedOutputStream) throws {
      try unknownFields.writeToCodedOutputStream(output)
    }
    override public func serializedSize() -> Int32 {
      var serialize_size:Int32 = memoizedSerializedSize
      if serialize_size != -1 {
       return serialize_size
      }

      serialize_size = 0
      serialize_size += unknownFields.serializedSize()
      memoizedSerializedSize = serialize_size
      return serialize_size
    }
    public class func parseArrayDelimitedFromInputStream(input:NSInputStream) throws -> Array<Pogoprotos.Networking.Requests.Messages.EchoMessage> {
      var mergedArray = Array<Pogoprotos.Networking.Requests.Messages.EchoMessage>()
      while let value = try parseFromDelimitedFromInputStream(input) {
        mergedArray += [value]
      }
      return mergedArray
    }
    public class func parseFromDelimitedFromInputStream(input:NSInputStream) throws -> Pogoprotos.Networking.Requests.Messages.EchoMessage? {
      return try Pogoprotos.Networking.Requests.Messages.EchoMessage.Builder().mergeDelimitedFromInputStream(input)?.build()
    }
    public class func parseFromData(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.EchoMessage {
      return try Pogoprotos.Networking.Requests.Messages.EchoMessage.Builder().mergeFromData(data, extensionRegistry:Pogoprotos.Networking.Requests.Messages.PogoprotosNetworkingRequestsMessagesRoot.sharedInstance.extensionRegistry).build()
    }
    public class func parseFromData(data:NSData, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.EchoMessage {
      return try Pogoprotos.Networking.Requests.Messages.EchoMessage.Builder().mergeFromData(data, extensionRegistry:extensionRegistry).build()
    }
    public class func parseFromInputStream(input:NSInputStream) throws -> Pogoprotos.Networking.Requests.Messages.EchoMessage {
      return try Pogoprotos.Networking.Requests.Messages.EchoMessage.Builder().mergeFromInputStream(input).build()
    }
    public class func parseFromInputStream(input:NSInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.EchoMessage {
      return try Pogoprotos.Networking.Requests.Messages.EchoMessage.Builder().mergeFromInputStream(input, extensionRegistry:extensionRegistry).build()
    }
    public class func parseFromCodedInputStream(input:CodedInputStream) throws -> Pogoprotos.Networking.Requests.Messages.EchoMessage {
      return try Pogoprotos.Networking.Requests.Messages.EchoMessage.Builder().mergeFromCodedInputStream(input).build()
    }
    public class func parseFromCodedInputStream(input:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.EchoMessage {
      return try Pogoprotos.Networking.Requests.Messages.EchoMessage.Builder().mergeFromCodedInputStream(input, extensionRegistry:extensionRegistry).build()
    }
    public class func getBuilder() -> Pogoprotos.Networking.Requests.Messages.EchoMessage.Builder {
      return Pogoprotos.Networking.Requests.Messages.EchoMessage.classBuilder() as! Pogoprotos.Networking.Requests.Messages.EchoMessage.Builder
    }
    public func getBuilder() -> Pogoprotos.Networking.Requests.Messages.EchoMessage.Builder {
      return classBuilder() as! Pogoprotos.Networking.Requests.Messages.EchoMessage.Builder
    }
    override public class func classBuilder() -> MessageBuilder {
      return Pogoprotos.Networking.Requests.Messages.EchoMessage.Builder()
    }
    override public func classBuilder() -> MessageBuilder {
      return Pogoprotos.Networking.Requests.Messages.EchoMessage.Builder()
    }
    public func toBuilder() throws -> Pogoprotos.Networking.Requests.Messages.EchoMessage.Builder {
      return try Pogoprotos.Networking.Requests.Messages.EchoMessage.builderWithPrototype(self)
    }
    public class func builderWithPrototype(prototype:Pogoprotos.Networking.Requests.Messages.EchoMessage) throws -> Pogoprotos.Networking.Requests.Messages.EchoMessage.Builder {
      return try Pogoprotos.Networking.Requests.Messages.EchoMessage.Builder().mergeFrom(prototype)
    }
    override public func encode() throws -> Dictionary<String,AnyObject> {
      guard isInitialized() else {
        throw ProtocolBuffersError.InvalidProtocolBuffer("Uninitialized Message")
      }

      let jsonMap:Dictionary<String,AnyObject> = Dictionary<String,AnyObject>()
      return jsonMap
    }
    override class public func decode(jsonMap:Dictionary<String,AnyObject>) throws -> Pogoprotos.Networking.Requests.Messages.EchoMessage {
      return try Pogoprotos.Networking.Requests.Messages.EchoMessage.Builder.decodeToBuilder(jsonMap).build()
    }
    override class public func fromJSON(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.EchoMessage {
      return try Pogoprotos.Networking.Requests.Messages.EchoMessage.Builder.fromJSONToBuilder(data).build()
    }
    override public func getDescription(indent:String) throws -> String {
      var output = ""
      output += unknownFields.getDescription(indent)
      return output
    }
    override public var hashValue:Int {
        get {
            var hashCode:Int = 7
            hashCode = (hashCode &* 31) &+  unknownFields.hashValue
            return hashCode
        }
    }


    //Meta information declaration start

    override public class func className() -> String {
        return "Pogoprotos.Networking.Requests.Messages.EchoMessage"
    }
    override public func className() -> String {
        return "Pogoprotos.Networking.Requests.Messages.EchoMessage"
    }
    override public func classMetaType() -> GeneratedMessage.Type {
        return Pogoprotos.Networking.Requests.Messages.EchoMessage.self
    }
    //Meta information declaration end

    final public class Builder : GeneratedMessageBuilder {
      private var builderResult:Pogoprotos.Networking.Requests.Messages.EchoMessage = Pogoprotos.Networking.Requests.Messages.EchoMessage()
      public func getMessage() -> Pogoprotos.Networking.Requests.Messages.EchoMessage {
          return builderResult
      }

      required override public init () {
         super.init()
      }
      override public var internalGetResult:GeneratedMessage {
           get {
              return builderResult
           }
      }
      override public func clear() -> Pogoprotos.Networking.Requests.Messages.EchoMessage.Builder {
        builderResult = Pogoprotos.Networking.Requests.Messages.EchoMessage()
        return self
      }
      override public func clone() throws -> Pogoprotos.Networking.Requests.Messages.EchoMessage.Builder {
        return try Pogoprotos.Networking.Requests.Messages.EchoMessage.builderWithPrototype(builderResult)
      }
      override public func build() throws -> Pogoprotos.Networking.Requests.Messages.EchoMessage {
           try checkInitialized()
           return buildPartial()
      }
      public func buildPartial() -> Pogoprotos.Networking.Requests.Messages.EchoMessage {
        let returnMe:Pogoprotos.Networking.Requests.Messages.EchoMessage = builderResult
        return returnMe
      }
      public func mergeFrom(other:Pogoprotos.Networking.Requests.Messages.EchoMessage) throws -> Pogoprotos.Networking.Requests.Messages.EchoMessage.Builder {
        if other == Pogoprotos.Networking.Requests.Messages.EchoMessage() {
         return self
        }
        try mergeUnknownFields(other.unknownFields)
        return self
      }
      override public func mergeFromCodedInputStream(input:CodedInputStream) throws -> Pogoprotos.Networking.Requests.Messages.EchoMessage.Builder {
           return try mergeFromCodedInputStream(input, extensionRegistry:ExtensionRegistry())
      }
      override public func mergeFromCodedInputStream(input:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.EchoMessage.Builder {
        let unknownFieldsBuilder:UnknownFieldSet.Builder = try UnknownFieldSet.builderWithUnknownFields(self.unknownFields)
        while (true) {
          let protobufTag = try input.readTag()
          switch protobufTag {
          case 0: 
            self.unknownFields = try unknownFieldsBuilder.build()
            return self

          default:
            if (!(try parseUnknownField(input,unknownFields:unknownFieldsBuilder, extensionRegistry:extensionRegistry, tag:protobufTag))) {
               unknownFields = try unknownFieldsBuilder.build()
               return self
            }
          }
        }
      }
      override class public func decodeToBuilder(jsonMap:Dictionary<String,AnyObject>) throws -> Pogoprotos.Networking.Requests.Messages.EchoMessage.Builder {
        let resultDecodedBuilder = Pogoprotos.Networking.Requests.Messages.EchoMessage.Builder()
        return resultDecodedBuilder
      }
      override class public func fromJSONToBuilder(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.EchoMessage.Builder {
        let jsonData = try NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions(rawValue: 0))
        guard let jsDataCast = jsonData as? Dictionary<String,AnyObject> else {
          throw ProtocolBuffersError.InvalidProtocolBuffer("Invalid JSON data")
        }
        return try Pogoprotos.Networking.Requests.Messages.EchoMessage.Builder.decodeToBuilder(jsDataCast)
      }
    }

  }

  final public class EncounterMessage : GeneratedMessage, GeneratedMessageProtocol {
    public private(set) var hasEncounterId:Bool = false
    public private(set) var encounterId:UInt64 = UInt64(0)

    public private(set) var hasSpawnPointId:Bool = false
    public private(set) var spawnPointId:String = ""

    public private(set) var hasPlayerLatitude:Bool = false
    public private(set) var playerLatitude:Double = Double(0)

    public private(set) var hasPlayerLongitude:Bool = false
    public private(set) var playerLongitude:Double = Double(0)

    required public init() {
         super.init()
    }
    override public func isInitialized() -> Bool {
     return true
    }
    override public func writeToCodedOutputStream(output:CodedOutputStream) throws {
      if hasEncounterId {
        try output.writeFixed64(1, value:encounterId)
      }
      if hasSpawnPointId {
        try output.writeString(2, value:spawnPointId)
      }
      if hasPlayerLatitude {
        try output.writeDouble(3, value:playerLatitude)
      }
      if hasPlayerLongitude {
        try output.writeDouble(4, value:playerLongitude)
      }
      try unknownFields.writeToCodedOutputStream(output)
    }
    override public func serializedSize() -> Int32 {
      var serialize_size:Int32 = memoizedSerializedSize
      if serialize_size != -1 {
       return serialize_size
      }

      serialize_size = 0
      if hasEncounterId {
        serialize_size += encounterId.computeFixed64Size(1)
      }
      if hasSpawnPointId {
        serialize_size += spawnPointId.computeStringSize(2)
      }
      if hasPlayerLatitude {
        serialize_size += playerLatitude.computeDoubleSize(3)
      }
      if hasPlayerLongitude {
        serialize_size += playerLongitude.computeDoubleSize(4)
      }
      serialize_size += unknownFields.serializedSize()
      memoizedSerializedSize = serialize_size
      return serialize_size
    }
    public class func parseArrayDelimitedFromInputStream(input:NSInputStream) throws -> Array<Pogoprotos.Networking.Requests.Messages.EncounterMessage> {
      var mergedArray = Array<Pogoprotos.Networking.Requests.Messages.EncounterMessage>()
      while let value = try parseFromDelimitedFromInputStream(input) {
        mergedArray += [value]
      }
      return mergedArray
    }
    public class func parseFromDelimitedFromInputStream(input:NSInputStream) throws -> Pogoprotos.Networking.Requests.Messages.EncounterMessage? {
      return try Pogoprotos.Networking.Requests.Messages.EncounterMessage.Builder().mergeDelimitedFromInputStream(input)?.build()
    }
    public class func parseFromData(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.EncounterMessage {
      return try Pogoprotos.Networking.Requests.Messages.EncounterMessage.Builder().mergeFromData(data, extensionRegistry:Pogoprotos.Networking.Requests.Messages.PogoprotosNetworkingRequestsMessagesRoot.sharedInstance.extensionRegistry).build()
    }
    public class func parseFromData(data:NSData, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.EncounterMessage {
      return try Pogoprotos.Networking.Requests.Messages.EncounterMessage.Builder().mergeFromData(data, extensionRegistry:extensionRegistry).build()
    }
    public class func parseFromInputStream(input:NSInputStream) throws -> Pogoprotos.Networking.Requests.Messages.EncounterMessage {
      return try Pogoprotos.Networking.Requests.Messages.EncounterMessage.Builder().mergeFromInputStream(input).build()
    }
    public class func parseFromInputStream(input:NSInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.EncounterMessage {
      return try Pogoprotos.Networking.Requests.Messages.EncounterMessage.Builder().mergeFromInputStream(input, extensionRegistry:extensionRegistry).build()
    }
    public class func parseFromCodedInputStream(input:CodedInputStream) throws -> Pogoprotos.Networking.Requests.Messages.EncounterMessage {
      return try Pogoprotos.Networking.Requests.Messages.EncounterMessage.Builder().mergeFromCodedInputStream(input).build()
    }
    public class func parseFromCodedInputStream(input:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.EncounterMessage {
      return try Pogoprotos.Networking.Requests.Messages.EncounterMessage.Builder().mergeFromCodedInputStream(input, extensionRegistry:extensionRegistry).build()
    }
    public class func getBuilder() -> Pogoprotos.Networking.Requests.Messages.EncounterMessage.Builder {
      return Pogoprotos.Networking.Requests.Messages.EncounterMessage.classBuilder() as! Pogoprotos.Networking.Requests.Messages.EncounterMessage.Builder
    }
    public func getBuilder() -> Pogoprotos.Networking.Requests.Messages.EncounterMessage.Builder {
      return classBuilder() as! Pogoprotos.Networking.Requests.Messages.EncounterMessage.Builder
    }
    override public class func classBuilder() -> MessageBuilder {
      return Pogoprotos.Networking.Requests.Messages.EncounterMessage.Builder()
    }
    override public func classBuilder() -> MessageBuilder {
      return Pogoprotos.Networking.Requests.Messages.EncounterMessage.Builder()
    }
    public func toBuilder() throws -> Pogoprotos.Networking.Requests.Messages.EncounterMessage.Builder {
      return try Pogoprotos.Networking.Requests.Messages.EncounterMessage.builderWithPrototype(self)
    }
    public class func builderWithPrototype(prototype:Pogoprotos.Networking.Requests.Messages.EncounterMessage) throws -> Pogoprotos.Networking.Requests.Messages.EncounterMessage.Builder {
      return try Pogoprotos.Networking.Requests.Messages.EncounterMessage.Builder().mergeFrom(prototype)
    }
    override public func encode() throws -> Dictionary<String,AnyObject> {
      guard isInitialized() else {
        throw ProtocolBuffersError.InvalidProtocolBuffer("Uninitialized Message")
      }

      var jsonMap:Dictionary<String,AnyObject> = Dictionary<String,AnyObject>()
      if hasEncounterId {
        jsonMap["encounterId"] = "\(encounterId)"
      }
      if hasSpawnPointId {
        jsonMap["spawnPointId"] = spawnPointId
      }
      if hasPlayerLatitude {
        jsonMap["playerLatitude"] = NSNumber(double:playerLatitude)
      }
      if hasPlayerLongitude {
        jsonMap["playerLongitude"] = NSNumber(double:playerLongitude)
      }
      return jsonMap
    }
    override class public func decode(jsonMap:Dictionary<String,AnyObject>) throws -> Pogoprotos.Networking.Requests.Messages.EncounterMessage {
      return try Pogoprotos.Networking.Requests.Messages.EncounterMessage.Builder.decodeToBuilder(jsonMap).build()
    }
    override class public func fromJSON(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.EncounterMessage {
      return try Pogoprotos.Networking.Requests.Messages.EncounterMessage.Builder.fromJSONToBuilder(data).build()
    }
    override public func getDescription(indent:String) throws -> String {
      var output = ""
      if hasEncounterId {
        output += "\(indent) encounterId: \(encounterId) \n"
      }
      if hasSpawnPointId {
        output += "\(indent) spawnPointId: \(spawnPointId) \n"
      }
      if hasPlayerLatitude {
        output += "\(indent) playerLatitude: \(playerLatitude) \n"
      }
      if hasPlayerLongitude {
        output += "\(indent) playerLongitude: \(playerLongitude) \n"
      }
      output += unknownFields.getDescription(indent)
      return output
    }
    override public var hashValue:Int {
        get {
            var hashCode:Int = 7
            if hasEncounterId {
               hashCode = (hashCode &* 31) &+ encounterId.hashValue
            }
            if hasSpawnPointId {
               hashCode = (hashCode &* 31) &+ spawnPointId.hashValue
            }
            if hasPlayerLatitude {
               hashCode = (hashCode &* 31) &+ playerLatitude.hashValue
            }
            if hasPlayerLongitude {
               hashCode = (hashCode &* 31) &+ playerLongitude.hashValue
            }
            hashCode = (hashCode &* 31) &+  unknownFields.hashValue
            return hashCode
        }
    }


    //Meta information declaration start

    override public class func className() -> String {
        return "Pogoprotos.Networking.Requests.Messages.EncounterMessage"
    }
    override public func className() -> String {
        return "Pogoprotos.Networking.Requests.Messages.EncounterMessage"
    }
    override public func classMetaType() -> GeneratedMessage.Type {
        return Pogoprotos.Networking.Requests.Messages.EncounterMessage.self
    }
    //Meta information declaration end

    final public class Builder : GeneratedMessageBuilder {
      private var builderResult:Pogoprotos.Networking.Requests.Messages.EncounterMessage = Pogoprotos.Networking.Requests.Messages.EncounterMessage()
      public func getMessage() -> Pogoprotos.Networking.Requests.Messages.EncounterMessage {
          return builderResult
      }

      required override public init () {
         super.init()
      }
      public var hasEncounterId:Bool {
           get {
                return builderResult.hasEncounterId
           }
      }
      public var encounterId:UInt64 {
           get {
                return builderResult.encounterId
           }
           set (value) {
               builderResult.hasEncounterId = true
               builderResult.encounterId = value
           }
      }
      public func setEncounterId(value:UInt64) -> Pogoprotos.Networking.Requests.Messages.EncounterMessage.Builder {
        self.encounterId = value
        return self
      }
      public func clearEncounterId() -> Pogoprotos.Networking.Requests.Messages.EncounterMessage.Builder{
           builderResult.hasEncounterId = false
           builderResult.encounterId = UInt64(0)
           return self
      }
      public var hasSpawnPointId:Bool {
           get {
                return builderResult.hasSpawnPointId
           }
      }
      public var spawnPointId:String {
           get {
                return builderResult.spawnPointId
           }
           set (value) {
               builderResult.hasSpawnPointId = true
               builderResult.spawnPointId = value
           }
      }
      public func setSpawnPointId(value:String) -> Pogoprotos.Networking.Requests.Messages.EncounterMessage.Builder {
        self.spawnPointId = value
        return self
      }
      public func clearSpawnPointId() -> Pogoprotos.Networking.Requests.Messages.EncounterMessage.Builder{
           builderResult.hasSpawnPointId = false
           builderResult.spawnPointId = ""
           return self
      }
      public var hasPlayerLatitude:Bool {
           get {
                return builderResult.hasPlayerLatitude
           }
      }
      public var playerLatitude:Double {
           get {
                return builderResult.playerLatitude
           }
           set (value) {
               builderResult.hasPlayerLatitude = true
               builderResult.playerLatitude = value
           }
      }
      public func setPlayerLatitude(value:Double) -> Pogoprotos.Networking.Requests.Messages.EncounterMessage.Builder {
        self.playerLatitude = value
        return self
      }
      public func clearPlayerLatitude() -> Pogoprotos.Networking.Requests.Messages.EncounterMessage.Builder{
           builderResult.hasPlayerLatitude = false
           builderResult.playerLatitude = Double(0)
           return self
      }
      public var hasPlayerLongitude:Bool {
           get {
                return builderResult.hasPlayerLongitude
           }
      }
      public var playerLongitude:Double {
           get {
                return builderResult.playerLongitude
           }
           set (value) {
               builderResult.hasPlayerLongitude = true
               builderResult.playerLongitude = value
           }
      }
      public func setPlayerLongitude(value:Double) -> Pogoprotos.Networking.Requests.Messages.EncounterMessage.Builder {
        self.playerLongitude = value
        return self
      }
      public func clearPlayerLongitude() -> Pogoprotos.Networking.Requests.Messages.EncounterMessage.Builder{
           builderResult.hasPlayerLongitude = false
           builderResult.playerLongitude = Double(0)
           return self
      }
      override public var internalGetResult:GeneratedMessage {
           get {
              return builderResult
           }
      }
      override public func clear() -> Pogoprotos.Networking.Requests.Messages.EncounterMessage.Builder {
        builderResult = Pogoprotos.Networking.Requests.Messages.EncounterMessage()
        return self
      }
      override public func clone() throws -> Pogoprotos.Networking.Requests.Messages.EncounterMessage.Builder {
        return try Pogoprotos.Networking.Requests.Messages.EncounterMessage.builderWithPrototype(builderResult)
      }
      override public func build() throws -> Pogoprotos.Networking.Requests.Messages.EncounterMessage {
           try checkInitialized()
           return buildPartial()
      }
      public func buildPartial() -> Pogoprotos.Networking.Requests.Messages.EncounterMessage {
        let returnMe:Pogoprotos.Networking.Requests.Messages.EncounterMessage = builderResult
        return returnMe
      }
      public func mergeFrom(other:Pogoprotos.Networking.Requests.Messages.EncounterMessage) throws -> Pogoprotos.Networking.Requests.Messages.EncounterMessage.Builder {
        if other == Pogoprotos.Networking.Requests.Messages.EncounterMessage() {
         return self
        }
        if other.hasEncounterId {
             encounterId = other.encounterId
        }
        if other.hasSpawnPointId {
             spawnPointId = other.spawnPointId
        }
        if other.hasPlayerLatitude {
             playerLatitude = other.playerLatitude
        }
        if other.hasPlayerLongitude {
             playerLongitude = other.playerLongitude
        }
        try mergeUnknownFields(other.unknownFields)
        return self
      }
      override public func mergeFromCodedInputStream(input:CodedInputStream) throws -> Pogoprotos.Networking.Requests.Messages.EncounterMessage.Builder {
           return try mergeFromCodedInputStream(input, extensionRegistry:ExtensionRegistry())
      }
      override public func mergeFromCodedInputStream(input:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.EncounterMessage.Builder {
        let unknownFieldsBuilder:UnknownFieldSet.Builder = try UnknownFieldSet.builderWithUnknownFields(self.unknownFields)
        while (true) {
          let protobufTag = try input.readTag()
          switch protobufTag {
          case 0: 
            self.unknownFields = try unknownFieldsBuilder.build()
            return self

          case 9:
            encounterId = try input.readFixed64()

          case 18:
            spawnPointId = try input.readString()

          case 25:
            playerLatitude = try input.readDouble()

          case 33:
            playerLongitude = try input.readDouble()

          default:
            if (!(try parseUnknownField(input,unknownFields:unknownFieldsBuilder, extensionRegistry:extensionRegistry, tag:protobufTag))) {
               unknownFields = try unknownFieldsBuilder.build()
               return self
            }
          }
        }
      }
      override class public func decodeToBuilder(jsonMap:Dictionary<String,AnyObject>) throws -> Pogoprotos.Networking.Requests.Messages.EncounterMessage.Builder {
        let resultDecodedBuilder = Pogoprotos.Networking.Requests.Messages.EncounterMessage.Builder()
        if let jsonValueEncounterId = jsonMap["encounterId"] as? String {
          resultDecodedBuilder.encounterId = UInt64(jsonValueEncounterId)!
        }
        if let jsonValueSpawnPointId = jsonMap["spawnPointId"] as? String {
          resultDecodedBuilder.spawnPointId = jsonValueSpawnPointId
        }
        if let jsonValuePlayerLatitude = jsonMap["playerLatitude"] as? NSNumber {
          resultDecodedBuilder.playerLatitude = jsonValuePlayerLatitude.doubleValue
        }
        if let jsonValuePlayerLongitude = jsonMap["playerLongitude"] as? NSNumber {
          resultDecodedBuilder.playerLongitude = jsonValuePlayerLongitude.doubleValue
        }
        return resultDecodedBuilder
      }
      override class public func fromJSONToBuilder(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.EncounterMessage.Builder {
        let jsonData = try NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions(rawValue: 0))
        guard let jsDataCast = jsonData as? Dictionary<String,AnyObject> else {
          throw ProtocolBuffersError.InvalidProtocolBuffer("Invalid JSON data")
        }
        return try Pogoprotos.Networking.Requests.Messages.EncounterMessage.Builder.decodeToBuilder(jsDataCast)
      }
    }

  }

  final public class EncounterTutorialCompleteMessage : GeneratedMessage, GeneratedMessageProtocol {
    public private(set) var pokemonId:Pogoprotos.Enums.PokemonId = Pogoprotos.Enums.PokemonId.Missingno
    public private(set) var hasPokemonId:Bool = false
    required public init() {
         super.init()
    }
    override public func isInitialized() -> Bool {
     return true
    }
    override public func writeToCodedOutputStream(output:CodedOutputStream) throws {
      if hasPokemonId {
        try output.writeEnum(1, value:pokemonId.rawValue)
      }
      try unknownFields.writeToCodedOutputStream(output)
    }
    override public func serializedSize() -> Int32 {
      var serialize_size:Int32 = memoizedSerializedSize
      if serialize_size != -1 {
       return serialize_size
      }

      serialize_size = 0
      if (hasPokemonId) {
        serialize_size += pokemonId.rawValue.computeEnumSize(1)
      }
      serialize_size += unknownFields.serializedSize()
      memoizedSerializedSize = serialize_size
      return serialize_size
    }
    public class func parseArrayDelimitedFromInputStream(input:NSInputStream) throws -> Array<Pogoprotos.Networking.Requests.Messages.EncounterTutorialCompleteMessage> {
      var mergedArray = Array<Pogoprotos.Networking.Requests.Messages.EncounterTutorialCompleteMessage>()
      while let value = try parseFromDelimitedFromInputStream(input) {
        mergedArray += [value]
      }
      return mergedArray
    }
    public class func parseFromDelimitedFromInputStream(input:NSInputStream) throws -> Pogoprotos.Networking.Requests.Messages.EncounterTutorialCompleteMessage? {
      return try Pogoprotos.Networking.Requests.Messages.EncounterTutorialCompleteMessage.Builder().mergeDelimitedFromInputStream(input)?.build()
    }
    public class func parseFromData(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.EncounterTutorialCompleteMessage {
      return try Pogoprotos.Networking.Requests.Messages.EncounterTutorialCompleteMessage.Builder().mergeFromData(data, extensionRegistry:Pogoprotos.Networking.Requests.Messages.PogoprotosNetworkingRequestsMessagesRoot.sharedInstance.extensionRegistry).build()
    }
    public class func parseFromData(data:NSData, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.EncounterTutorialCompleteMessage {
      return try Pogoprotos.Networking.Requests.Messages.EncounterTutorialCompleteMessage.Builder().mergeFromData(data, extensionRegistry:extensionRegistry).build()
    }
    public class func parseFromInputStream(input:NSInputStream) throws -> Pogoprotos.Networking.Requests.Messages.EncounterTutorialCompleteMessage {
      return try Pogoprotos.Networking.Requests.Messages.EncounterTutorialCompleteMessage.Builder().mergeFromInputStream(input).build()
    }
    public class func parseFromInputStream(input:NSInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.EncounterTutorialCompleteMessage {
      return try Pogoprotos.Networking.Requests.Messages.EncounterTutorialCompleteMessage.Builder().mergeFromInputStream(input, extensionRegistry:extensionRegistry).build()
    }
    public class func parseFromCodedInputStream(input:CodedInputStream) throws -> Pogoprotos.Networking.Requests.Messages.EncounterTutorialCompleteMessage {
      return try Pogoprotos.Networking.Requests.Messages.EncounterTutorialCompleteMessage.Builder().mergeFromCodedInputStream(input).build()
    }
    public class func parseFromCodedInputStream(input:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.EncounterTutorialCompleteMessage {
      return try Pogoprotos.Networking.Requests.Messages.EncounterTutorialCompleteMessage.Builder().mergeFromCodedInputStream(input, extensionRegistry:extensionRegistry).build()
    }
    public class func getBuilder() -> Pogoprotos.Networking.Requests.Messages.EncounterTutorialCompleteMessage.Builder {
      return Pogoprotos.Networking.Requests.Messages.EncounterTutorialCompleteMessage.classBuilder() as! Pogoprotos.Networking.Requests.Messages.EncounterTutorialCompleteMessage.Builder
    }
    public func getBuilder() -> Pogoprotos.Networking.Requests.Messages.EncounterTutorialCompleteMessage.Builder {
      return classBuilder() as! Pogoprotos.Networking.Requests.Messages.EncounterTutorialCompleteMessage.Builder
    }
    override public class func classBuilder() -> MessageBuilder {
      return Pogoprotos.Networking.Requests.Messages.EncounterTutorialCompleteMessage.Builder()
    }
    override public func classBuilder() -> MessageBuilder {
      return Pogoprotos.Networking.Requests.Messages.EncounterTutorialCompleteMessage.Builder()
    }
    public func toBuilder() throws -> Pogoprotos.Networking.Requests.Messages.EncounterTutorialCompleteMessage.Builder {
      return try Pogoprotos.Networking.Requests.Messages.EncounterTutorialCompleteMessage.builderWithPrototype(self)
    }
    public class func builderWithPrototype(prototype:Pogoprotos.Networking.Requests.Messages.EncounterTutorialCompleteMessage) throws -> Pogoprotos.Networking.Requests.Messages.EncounterTutorialCompleteMessage.Builder {
      return try Pogoprotos.Networking.Requests.Messages.EncounterTutorialCompleteMessage.Builder().mergeFrom(prototype)
    }
    override public func encode() throws -> Dictionary<String,AnyObject> {
      guard isInitialized() else {
        throw ProtocolBuffersError.InvalidProtocolBuffer("Uninitialized Message")
      }

      var jsonMap:Dictionary<String,AnyObject> = Dictionary<String,AnyObject>()
      if hasPokemonId {
        jsonMap["pokemonId"] = pokemonId.toString()
      }
      return jsonMap
    }
    override class public func decode(jsonMap:Dictionary<String,AnyObject>) throws -> Pogoprotos.Networking.Requests.Messages.EncounterTutorialCompleteMessage {
      return try Pogoprotos.Networking.Requests.Messages.EncounterTutorialCompleteMessage.Builder.decodeToBuilder(jsonMap).build()
    }
    override class public func fromJSON(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.EncounterTutorialCompleteMessage {
      return try Pogoprotos.Networking.Requests.Messages.EncounterTutorialCompleteMessage.Builder.fromJSONToBuilder(data).build()
    }
    override public func getDescription(indent:String) throws -> String {
      var output = ""
      if (hasPokemonId) {
        output += "\(indent) pokemonId: \(pokemonId.description)\n"
      }
      output += unknownFields.getDescription(indent)
      return output
    }
    override public var hashValue:Int {
        get {
            var hashCode:Int = 7
            if hasPokemonId {
               hashCode = (hashCode &* 31) &+ Int(pokemonId.rawValue)
            }
            hashCode = (hashCode &* 31) &+  unknownFields.hashValue
            return hashCode
        }
    }


    //Meta information declaration start

    override public class func className() -> String {
        return "Pogoprotos.Networking.Requests.Messages.EncounterTutorialCompleteMessage"
    }
    override public func className() -> String {
        return "Pogoprotos.Networking.Requests.Messages.EncounterTutorialCompleteMessage"
    }
    override public func classMetaType() -> GeneratedMessage.Type {
        return Pogoprotos.Networking.Requests.Messages.EncounterTutorialCompleteMessage.self
    }
    //Meta information declaration end

    final public class Builder : GeneratedMessageBuilder {
      private var builderResult:Pogoprotos.Networking.Requests.Messages.EncounterTutorialCompleteMessage = Pogoprotos.Networking.Requests.Messages.EncounterTutorialCompleteMessage()
      public func getMessage() -> Pogoprotos.Networking.Requests.Messages.EncounterTutorialCompleteMessage {
          return builderResult
      }

      required override public init () {
         super.init()
      }
        public var hasPokemonId:Bool{
            get {
                return builderResult.hasPokemonId
            }
        }
        public var pokemonId:Pogoprotos.Enums.PokemonId {
            get {
                return builderResult.pokemonId
            }
            set (value) {
                builderResult.hasPokemonId = true
                builderResult.pokemonId = value
            }
        }
        public func setPokemonId(value:Pogoprotos.Enums.PokemonId) -> Pogoprotos.Networking.Requests.Messages.EncounterTutorialCompleteMessage.Builder {
          self.pokemonId = value
          return self
        }
        public func clearPokemonId() -> Pogoprotos.Networking.Requests.Messages.EncounterTutorialCompleteMessage.Builder {
           builderResult.hasPokemonId = false
           builderResult.pokemonId = .Missingno
           return self
        }
      override public var internalGetResult:GeneratedMessage {
           get {
              return builderResult
           }
      }
      override public func clear() -> Pogoprotos.Networking.Requests.Messages.EncounterTutorialCompleteMessage.Builder {
        builderResult = Pogoprotos.Networking.Requests.Messages.EncounterTutorialCompleteMessage()
        return self
      }
      override public func clone() throws -> Pogoprotos.Networking.Requests.Messages.EncounterTutorialCompleteMessage.Builder {
        return try Pogoprotos.Networking.Requests.Messages.EncounterTutorialCompleteMessage.builderWithPrototype(builderResult)
      }
      override public func build() throws -> Pogoprotos.Networking.Requests.Messages.EncounterTutorialCompleteMessage {
           try checkInitialized()
           return buildPartial()
      }
      public func buildPartial() -> Pogoprotos.Networking.Requests.Messages.EncounterTutorialCompleteMessage {
        let returnMe:Pogoprotos.Networking.Requests.Messages.EncounterTutorialCompleteMessage = builderResult
        return returnMe
      }
      public func mergeFrom(other:Pogoprotos.Networking.Requests.Messages.EncounterTutorialCompleteMessage) throws -> Pogoprotos.Networking.Requests.Messages.EncounterTutorialCompleteMessage.Builder {
        if other == Pogoprotos.Networking.Requests.Messages.EncounterTutorialCompleteMessage() {
         return self
        }
        if other.hasPokemonId {
             pokemonId = other.pokemonId
        }
        try mergeUnknownFields(other.unknownFields)
        return self
      }
      override public func mergeFromCodedInputStream(input:CodedInputStream) throws -> Pogoprotos.Networking.Requests.Messages.EncounterTutorialCompleteMessage.Builder {
           return try mergeFromCodedInputStream(input, extensionRegistry:ExtensionRegistry())
      }
      override public func mergeFromCodedInputStream(input:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.EncounterTutorialCompleteMessage.Builder {
        let unknownFieldsBuilder:UnknownFieldSet.Builder = try UnknownFieldSet.builderWithUnknownFields(self.unknownFields)
        while (true) {
          let protobufTag = try input.readTag()
          switch protobufTag {
          case 0: 
            self.unknownFields = try unknownFieldsBuilder.build()
            return self

          case 8:
            let valueIntpokemonId = try input.readEnum()
            if let enumspokemonId = Pogoprotos.Enums.PokemonId(rawValue:valueIntpokemonId){
                 pokemonId = enumspokemonId
            } else {
                 try unknownFieldsBuilder.mergeVarintField(1, value:Int64(valueIntpokemonId))
            }

          default:
            if (!(try parseUnknownField(input,unknownFields:unknownFieldsBuilder, extensionRegistry:extensionRegistry, tag:protobufTag))) {
               unknownFields = try unknownFieldsBuilder.build()
               return self
            }
          }
        }
      }
      override class public func decodeToBuilder(jsonMap:Dictionary<String,AnyObject>) throws -> Pogoprotos.Networking.Requests.Messages.EncounterTutorialCompleteMessage.Builder {
        let resultDecodedBuilder = Pogoprotos.Networking.Requests.Messages.EncounterTutorialCompleteMessage.Builder()
        if let jsonValuePokemonId = jsonMap["pokemonId"] as? String {
          resultDecodedBuilder.pokemonId = try Pogoprotos.Enums.PokemonId.fromString(jsonValuePokemonId)
        }
        return resultDecodedBuilder
      }
      override class public func fromJSONToBuilder(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.EncounterTutorialCompleteMessage.Builder {
        let jsonData = try NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions(rawValue: 0))
        guard let jsDataCast = jsonData as? Dictionary<String,AnyObject> else {
          throw ProtocolBuffersError.InvalidProtocolBuffer("Invalid JSON data")
        }
        return try Pogoprotos.Networking.Requests.Messages.EncounterTutorialCompleteMessage.Builder.decodeToBuilder(jsDataCast)
      }
    }

  }

  final public class EquipBadgeMessage : GeneratedMessage, GeneratedMessageProtocol {
    public private(set) var badgeType:Pogoprotos.Enums.BadgeType = Pogoprotos.Enums.BadgeType.BadgeUnset
    public private(set) var hasBadgeType:Bool = false
    required public init() {
         super.init()
    }
    override public func isInitialized() -> Bool {
     return true
    }
    override public func writeToCodedOutputStream(output:CodedOutputStream) throws {
      if hasBadgeType {
        try output.writeEnum(1, value:badgeType.rawValue)
      }
      try unknownFields.writeToCodedOutputStream(output)
    }
    override public func serializedSize() -> Int32 {
      var serialize_size:Int32 = memoizedSerializedSize
      if serialize_size != -1 {
       return serialize_size
      }

      serialize_size = 0
      if (hasBadgeType) {
        serialize_size += badgeType.rawValue.computeEnumSize(1)
      }
      serialize_size += unknownFields.serializedSize()
      memoizedSerializedSize = serialize_size
      return serialize_size
    }
    public class func parseArrayDelimitedFromInputStream(input:NSInputStream) throws -> Array<Pogoprotos.Networking.Requests.Messages.EquipBadgeMessage> {
      var mergedArray = Array<Pogoprotos.Networking.Requests.Messages.EquipBadgeMessage>()
      while let value = try parseFromDelimitedFromInputStream(input) {
        mergedArray += [value]
      }
      return mergedArray
    }
    public class func parseFromDelimitedFromInputStream(input:NSInputStream) throws -> Pogoprotos.Networking.Requests.Messages.EquipBadgeMessage? {
      return try Pogoprotos.Networking.Requests.Messages.EquipBadgeMessage.Builder().mergeDelimitedFromInputStream(input)?.build()
    }
    public class func parseFromData(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.EquipBadgeMessage {
      return try Pogoprotos.Networking.Requests.Messages.EquipBadgeMessage.Builder().mergeFromData(data, extensionRegistry:Pogoprotos.Networking.Requests.Messages.PogoprotosNetworkingRequestsMessagesRoot.sharedInstance.extensionRegistry).build()
    }
    public class func parseFromData(data:NSData, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.EquipBadgeMessage {
      return try Pogoprotos.Networking.Requests.Messages.EquipBadgeMessage.Builder().mergeFromData(data, extensionRegistry:extensionRegistry).build()
    }
    public class func parseFromInputStream(input:NSInputStream) throws -> Pogoprotos.Networking.Requests.Messages.EquipBadgeMessage {
      return try Pogoprotos.Networking.Requests.Messages.EquipBadgeMessage.Builder().mergeFromInputStream(input).build()
    }
    public class func parseFromInputStream(input:NSInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.EquipBadgeMessage {
      return try Pogoprotos.Networking.Requests.Messages.EquipBadgeMessage.Builder().mergeFromInputStream(input, extensionRegistry:extensionRegistry).build()
    }
    public class func parseFromCodedInputStream(input:CodedInputStream) throws -> Pogoprotos.Networking.Requests.Messages.EquipBadgeMessage {
      return try Pogoprotos.Networking.Requests.Messages.EquipBadgeMessage.Builder().mergeFromCodedInputStream(input).build()
    }
    public class func parseFromCodedInputStream(input:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.EquipBadgeMessage {
      return try Pogoprotos.Networking.Requests.Messages.EquipBadgeMessage.Builder().mergeFromCodedInputStream(input, extensionRegistry:extensionRegistry).build()
    }
    public class func getBuilder() -> Pogoprotos.Networking.Requests.Messages.EquipBadgeMessage.Builder {
      return Pogoprotos.Networking.Requests.Messages.EquipBadgeMessage.classBuilder() as! Pogoprotos.Networking.Requests.Messages.EquipBadgeMessage.Builder
    }
    public func getBuilder() -> Pogoprotos.Networking.Requests.Messages.EquipBadgeMessage.Builder {
      return classBuilder() as! Pogoprotos.Networking.Requests.Messages.EquipBadgeMessage.Builder
    }
    override public class func classBuilder() -> MessageBuilder {
      return Pogoprotos.Networking.Requests.Messages.EquipBadgeMessage.Builder()
    }
    override public func classBuilder() -> MessageBuilder {
      return Pogoprotos.Networking.Requests.Messages.EquipBadgeMessage.Builder()
    }
    public func toBuilder() throws -> Pogoprotos.Networking.Requests.Messages.EquipBadgeMessage.Builder {
      return try Pogoprotos.Networking.Requests.Messages.EquipBadgeMessage.builderWithPrototype(self)
    }
    public class func builderWithPrototype(prototype:Pogoprotos.Networking.Requests.Messages.EquipBadgeMessage) throws -> Pogoprotos.Networking.Requests.Messages.EquipBadgeMessage.Builder {
      return try Pogoprotos.Networking.Requests.Messages.EquipBadgeMessage.Builder().mergeFrom(prototype)
    }
    override public func encode() throws -> Dictionary<String,AnyObject> {
      guard isInitialized() else {
        throw ProtocolBuffersError.InvalidProtocolBuffer("Uninitialized Message")
      }

      var jsonMap:Dictionary<String,AnyObject> = Dictionary<String,AnyObject>()
      if hasBadgeType {
        jsonMap["badgeType"] = badgeType.toString()
      }
      return jsonMap
    }
    override class public func decode(jsonMap:Dictionary<String,AnyObject>) throws -> Pogoprotos.Networking.Requests.Messages.EquipBadgeMessage {
      return try Pogoprotos.Networking.Requests.Messages.EquipBadgeMessage.Builder.decodeToBuilder(jsonMap).build()
    }
    override class public func fromJSON(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.EquipBadgeMessage {
      return try Pogoprotos.Networking.Requests.Messages.EquipBadgeMessage.Builder.fromJSONToBuilder(data).build()
    }
    override public func getDescription(indent:String) throws -> String {
      var output = ""
      if (hasBadgeType) {
        output += "\(indent) badgeType: \(badgeType.description)\n"
      }
      output += unknownFields.getDescription(indent)
      return output
    }
    override public var hashValue:Int {
        get {
            var hashCode:Int = 7
            if hasBadgeType {
               hashCode = (hashCode &* 31) &+ Int(badgeType.rawValue)
            }
            hashCode = (hashCode &* 31) &+  unknownFields.hashValue
            return hashCode
        }
    }


    //Meta information declaration start

    override public class func className() -> String {
        return "Pogoprotos.Networking.Requests.Messages.EquipBadgeMessage"
    }
    override public func className() -> String {
        return "Pogoprotos.Networking.Requests.Messages.EquipBadgeMessage"
    }
    override public func classMetaType() -> GeneratedMessage.Type {
        return Pogoprotos.Networking.Requests.Messages.EquipBadgeMessage.self
    }
    //Meta information declaration end

    final public class Builder : GeneratedMessageBuilder {
      private var builderResult:Pogoprotos.Networking.Requests.Messages.EquipBadgeMessage = Pogoprotos.Networking.Requests.Messages.EquipBadgeMessage()
      public func getMessage() -> Pogoprotos.Networking.Requests.Messages.EquipBadgeMessage {
          return builderResult
      }

      required override public init () {
         super.init()
      }
        public var hasBadgeType:Bool{
            get {
                return builderResult.hasBadgeType
            }
        }
        public var badgeType:Pogoprotos.Enums.BadgeType {
            get {
                return builderResult.badgeType
            }
            set (value) {
                builderResult.hasBadgeType = true
                builderResult.badgeType = value
            }
        }
        public func setBadgeType(value:Pogoprotos.Enums.BadgeType) -> Pogoprotos.Networking.Requests.Messages.EquipBadgeMessage.Builder {
          self.badgeType = value
          return self
        }
        public func clearBadgeType() -> Pogoprotos.Networking.Requests.Messages.EquipBadgeMessage.Builder {
           builderResult.hasBadgeType = false
           builderResult.badgeType = .BadgeUnset
           return self
        }
      override public var internalGetResult:GeneratedMessage {
           get {
              return builderResult
           }
      }
      override public func clear() -> Pogoprotos.Networking.Requests.Messages.EquipBadgeMessage.Builder {
        builderResult = Pogoprotos.Networking.Requests.Messages.EquipBadgeMessage()
        return self
      }
      override public func clone() throws -> Pogoprotos.Networking.Requests.Messages.EquipBadgeMessage.Builder {
        return try Pogoprotos.Networking.Requests.Messages.EquipBadgeMessage.builderWithPrototype(builderResult)
      }
      override public func build() throws -> Pogoprotos.Networking.Requests.Messages.EquipBadgeMessage {
           try checkInitialized()
           return buildPartial()
      }
      public func buildPartial() -> Pogoprotos.Networking.Requests.Messages.EquipBadgeMessage {
        let returnMe:Pogoprotos.Networking.Requests.Messages.EquipBadgeMessage = builderResult
        return returnMe
      }
      public func mergeFrom(other:Pogoprotos.Networking.Requests.Messages.EquipBadgeMessage) throws -> Pogoprotos.Networking.Requests.Messages.EquipBadgeMessage.Builder {
        if other == Pogoprotos.Networking.Requests.Messages.EquipBadgeMessage() {
         return self
        }
        if other.hasBadgeType {
             badgeType = other.badgeType
        }
        try mergeUnknownFields(other.unknownFields)
        return self
      }
      override public func mergeFromCodedInputStream(input:CodedInputStream) throws -> Pogoprotos.Networking.Requests.Messages.EquipBadgeMessage.Builder {
           return try mergeFromCodedInputStream(input, extensionRegistry:ExtensionRegistry())
      }
      override public func mergeFromCodedInputStream(input:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.EquipBadgeMessage.Builder {
        let unknownFieldsBuilder:UnknownFieldSet.Builder = try UnknownFieldSet.builderWithUnknownFields(self.unknownFields)
        while (true) {
          let protobufTag = try input.readTag()
          switch protobufTag {
          case 0: 
            self.unknownFields = try unknownFieldsBuilder.build()
            return self

          case 8:
            let valueIntbadgeType = try input.readEnum()
            if let enumsbadgeType = Pogoprotos.Enums.BadgeType(rawValue:valueIntbadgeType){
                 badgeType = enumsbadgeType
            } else {
                 try unknownFieldsBuilder.mergeVarintField(1, value:Int64(valueIntbadgeType))
            }

          default:
            if (!(try parseUnknownField(input,unknownFields:unknownFieldsBuilder, extensionRegistry:extensionRegistry, tag:protobufTag))) {
               unknownFields = try unknownFieldsBuilder.build()
               return self
            }
          }
        }
      }
      override class public func decodeToBuilder(jsonMap:Dictionary<String,AnyObject>) throws -> Pogoprotos.Networking.Requests.Messages.EquipBadgeMessage.Builder {
        let resultDecodedBuilder = Pogoprotos.Networking.Requests.Messages.EquipBadgeMessage.Builder()
        if let jsonValueBadgeType = jsonMap["badgeType"] as? String {
          resultDecodedBuilder.badgeType = try Pogoprotos.Enums.BadgeType.fromString(jsonValueBadgeType)
        }
        return resultDecodedBuilder
      }
      override class public func fromJSONToBuilder(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.EquipBadgeMessage.Builder {
        let jsonData = try NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions(rawValue: 0))
        guard let jsDataCast = jsonData as? Dictionary<String,AnyObject> else {
          throw ProtocolBuffersError.InvalidProtocolBuffer("Invalid JSON data")
        }
        return try Pogoprotos.Networking.Requests.Messages.EquipBadgeMessage.Builder.decodeToBuilder(jsDataCast)
      }
    }

  }

  final public class EvolvePokemonMessage : GeneratedMessage, GeneratedMessageProtocol {
    public private(set) var hasPokemonId:Bool = false
    public private(set) var pokemonId:UInt64 = UInt64(0)

    required public init() {
         super.init()
    }
    override public func isInitialized() -> Bool {
     return true
    }
    override public func writeToCodedOutputStream(output:CodedOutputStream) throws {
      if hasPokemonId {
        try output.writeFixed64(1, value:pokemonId)
      }
      try unknownFields.writeToCodedOutputStream(output)
    }
    override public func serializedSize() -> Int32 {
      var serialize_size:Int32 = memoizedSerializedSize
      if serialize_size != -1 {
       return serialize_size
      }

      serialize_size = 0
      if hasPokemonId {
        serialize_size += pokemonId.computeFixed64Size(1)
      }
      serialize_size += unknownFields.serializedSize()
      memoizedSerializedSize = serialize_size
      return serialize_size
    }
    public class func parseArrayDelimitedFromInputStream(input:NSInputStream) throws -> Array<Pogoprotos.Networking.Requests.Messages.EvolvePokemonMessage> {
      var mergedArray = Array<Pogoprotos.Networking.Requests.Messages.EvolvePokemonMessage>()
      while let value = try parseFromDelimitedFromInputStream(input) {
        mergedArray += [value]
      }
      return mergedArray
    }
    public class func parseFromDelimitedFromInputStream(input:NSInputStream) throws -> Pogoprotos.Networking.Requests.Messages.EvolvePokemonMessage? {
      return try Pogoprotos.Networking.Requests.Messages.EvolvePokemonMessage.Builder().mergeDelimitedFromInputStream(input)?.build()
    }
    public class func parseFromData(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.EvolvePokemonMessage {
      return try Pogoprotos.Networking.Requests.Messages.EvolvePokemonMessage.Builder().mergeFromData(data, extensionRegistry:Pogoprotos.Networking.Requests.Messages.PogoprotosNetworkingRequestsMessagesRoot.sharedInstance.extensionRegistry).build()
    }
    public class func parseFromData(data:NSData, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.EvolvePokemonMessage {
      return try Pogoprotos.Networking.Requests.Messages.EvolvePokemonMessage.Builder().mergeFromData(data, extensionRegistry:extensionRegistry).build()
    }
    public class func parseFromInputStream(input:NSInputStream) throws -> Pogoprotos.Networking.Requests.Messages.EvolvePokemonMessage {
      return try Pogoprotos.Networking.Requests.Messages.EvolvePokemonMessage.Builder().mergeFromInputStream(input).build()
    }
    public class func parseFromInputStream(input:NSInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.EvolvePokemonMessage {
      return try Pogoprotos.Networking.Requests.Messages.EvolvePokemonMessage.Builder().mergeFromInputStream(input, extensionRegistry:extensionRegistry).build()
    }
    public class func parseFromCodedInputStream(input:CodedInputStream) throws -> Pogoprotos.Networking.Requests.Messages.EvolvePokemonMessage {
      return try Pogoprotos.Networking.Requests.Messages.EvolvePokemonMessage.Builder().mergeFromCodedInputStream(input).build()
    }
    public class func parseFromCodedInputStream(input:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.EvolvePokemonMessage {
      return try Pogoprotos.Networking.Requests.Messages.EvolvePokemonMessage.Builder().mergeFromCodedInputStream(input, extensionRegistry:extensionRegistry).build()
    }
    public class func getBuilder() -> Pogoprotos.Networking.Requests.Messages.EvolvePokemonMessage.Builder {
      return Pogoprotos.Networking.Requests.Messages.EvolvePokemonMessage.classBuilder() as! Pogoprotos.Networking.Requests.Messages.EvolvePokemonMessage.Builder
    }
    public func getBuilder() -> Pogoprotos.Networking.Requests.Messages.EvolvePokemonMessage.Builder {
      return classBuilder() as! Pogoprotos.Networking.Requests.Messages.EvolvePokemonMessage.Builder
    }
    override public class func classBuilder() -> MessageBuilder {
      return Pogoprotos.Networking.Requests.Messages.EvolvePokemonMessage.Builder()
    }
    override public func classBuilder() -> MessageBuilder {
      return Pogoprotos.Networking.Requests.Messages.EvolvePokemonMessage.Builder()
    }
    public func toBuilder() throws -> Pogoprotos.Networking.Requests.Messages.EvolvePokemonMessage.Builder {
      return try Pogoprotos.Networking.Requests.Messages.EvolvePokemonMessage.builderWithPrototype(self)
    }
    public class func builderWithPrototype(prototype:Pogoprotos.Networking.Requests.Messages.EvolvePokemonMessage) throws -> Pogoprotos.Networking.Requests.Messages.EvolvePokemonMessage.Builder {
      return try Pogoprotos.Networking.Requests.Messages.EvolvePokemonMessage.Builder().mergeFrom(prototype)
    }
    override public func encode() throws -> Dictionary<String,AnyObject> {
      guard isInitialized() else {
        throw ProtocolBuffersError.InvalidProtocolBuffer("Uninitialized Message")
      }

      var jsonMap:Dictionary<String,AnyObject> = Dictionary<String,AnyObject>()
      if hasPokemonId {
        jsonMap["pokemonId"] = "\(pokemonId)"
      }
      return jsonMap
    }
    override class public func decode(jsonMap:Dictionary<String,AnyObject>) throws -> Pogoprotos.Networking.Requests.Messages.EvolvePokemonMessage {
      return try Pogoprotos.Networking.Requests.Messages.EvolvePokemonMessage.Builder.decodeToBuilder(jsonMap).build()
    }
    override class public func fromJSON(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.EvolvePokemonMessage {
      return try Pogoprotos.Networking.Requests.Messages.EvolvePokemonMessage.Builder.fromJSONToBuilder(data).build()
    }
    override public func getDescription(indent:String) throws -> String {
      var output = ""
      if hasPokemonId {
        output += "\(indent) pokemonId: \(pokemonId) \n"
      }
      output += unknownFields.getDescription(indent)
      return output
    }
    override public var hashValue:Int {
        get {
            var hashCode:Int = 7
            if hasPokemonId {
               hashCode = (hashCode &* 31) &+ pokemonId.hashValue
            }
            hashCode = (hashCode &* 31) &+  unknownFields.hashValue
            return hashCode
        }
    }


    //Meta information declaration start

    override public class func className() -> String {
        return "Pogoprotos.Networking.Requests.Messages.EvolvePokemonMessage"
    }
    override public func className() -> String {
        return "Pogoprotos.Networking.Requests.Messages.EvolvePokemonMessage"
    }
    override public func classMetaType() -> GeneratedMessage.Type {
        return Pogoprotos.Networking.Requests.Messages.EvolvePokemonMessage.self
    }
    //Meta information declaration end

    final public class Builder : GeneratedMessageBuilder {
      private var builderResult:Pogoprotos.Networking.Requests.Messages.EvolvePokemonMessage = Pogoprotos.Networking.Requests.Messages.EvolvePokemonMessage()
      public func getMessage() -> Pogoprotos.Networking.Requests.Messages.EvolvePokemonMessage {
          return builderResult
      }

      required override public init () {
         super.init()
      }
      public var hasPokemonId:Bool {
           get {
                return builderResult.hasPokemonId
           }
      }
      public var pokemonId:UInt64 {
           get {
                return builderResult.pokemonId
           }
           set (value) {
               builderResult.hasPokemonId = true
               builderResult.pokemonId = value
           }
      }
      public func setPokemonId(value:UInt64) -> Pogoprotos.Networking.Requests.Messages.EvolvePokemonMessage.Builder {
        self.pokemonId = value
        return self
      }
      public func clearPokemonId() -> Pogoprotos.Networking.Requests.Messages.EvolvePokemonMessage.Builder{
           builderResult.hasPokemonId = false
           builderResult.pokemonId = UInt64(0)
           return self
      }
      override public var internalGetResult:GeneratedMessage {
           get {
              return builderResult
           }
      }
      override public func clear() -> Pogoprotos.Networking.Requests.Messages.EvolvePokemonMessage.Builder {
        builderResult = Pogoprotos.Networking.Requests.Messages.EvolvePokemonMessage()
        return self
      }
      override public func clone() throws -> Pogoprotos.Networking.Requests.Messages.EvolvePokemonMessage.Builder {
        return try Pogoprotos.Networking.Requests.Messages.EvolvePokemonMessage.builderWithPrototype(builderResult)
      }
      override public func build() throws -> Pogoprotos.Networking.Requests.Messages.EvolvePokemonMessage {
           try checkInitialized()
           return buildPartial()
      }
      public func buildPartial() -> Pogoprotos.Networking.Requests.Messages.EvolvePokemonMessage {
        let returnMe:Pogoprotos.Networking.Requests.Messages.EvolvePokemonMessage = builderResult
        return returnMe
      }
      public func mergeFrom(other:Pogoprotos.Networking.Requests.Messages.EvolvePokemonMessage) throws -> Pogoprotos.Networking.Requests.Messages.EvolvePokemonMessage.Builder {
        if other == Pogoprotos.Networking.Requests.Messages.EvolvePokemonMessage() {
         return self
        }
        if other.hasPokemonId {
             pokemonId = other.pokemonId
        }
        try mergeUnknownFields(other.unknownFields)
        return self
      }
      override public func mergeFromCodedInputStream(input:CodedInputStream) throws -> Pogoprotos.Networking.Requests.Messages.EvolvePokemonMessage.Builder {
           return try mergeFromCodedInputStream(input, extensionRegistry:ExtensionRegistry())
      }
      override public func mergeFromCodedInputStream(input:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.EvolvePokemonMessage.Builder {
        let unknownFieldsBuilder:UnknownFieldSet.Builder = try UnknownFieldSet.builderWithUnknownFields(self.unknownFields)
        while (true) {
          let protobufTag = try input.readTag()
          switch protobufTag {
          case 0: 
            self.unknownFields = try unknownFieldsBuilder.build()
            return self

          case 9:
            pokemonId = try input.readFixed64()

          default:
            if (!(try parseUnknownField(input,unknownFields:unknownFieldsBuilder, extensionRegistry:extensionRegistry, tag:protobufTag))) {
               unknownFields = try unknownFieldsBuilder.build()
               return self
            }
          }
        }
      }
      override class public func decodeToBuilder(jsonMap:Dictionary<String,AnyObject>) throws -> Pogoprotos.Networking.Requests.Messages.EvolvePokemonMessage.Builder {
        let resultDecodedBuilder = Pogoprotos.Networking.Requests.Messages.EvolvePokemonMessage.Builder()
        if let jsonValuePokemonId = jsonMap["pokemonId"] as? String {
          resultDecodedBuilder.pokemonId = UInt64(jsonValuePokemonId)!
        }
        return resultDecodedBuilder
      }
      override class public func fromJSONToBuilder(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.EvolvePokemonMessage.Builder {
        let jsonData = try NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions(rawValue: 0))
        guard let jsDataCast = jsonData as? Dictionary<String,AnyObject> else {
          throw ProtocolBuffersError.InvalidProtocolBuffer("Invalid JSON data")
        }
        return try Pogoprotos.Networking.Requests.Messages.EvolvePokemonMessage.Builder.decodeToBuilder(jsDataCast)
      }
    }

  }

  final public class FortDeployPokemonMessage : GeneratedMessage, GeneratedMessageProtocol {
    public private(set) var hasFortId:Bool = false
    public private(set) var fortId:String = ""

    public private(set) var hasPokemonId:Bool = false
    public private(set) var pokemonId:UInt64 = UInt64(0)

    public private(set) var hasPlayerLatitude:Bool = false
    public private(set) var playerLatitude:Double = Double(0)

    public private(set) var hasPlayerLongitude:Bool = false
    public private(set) var playerLongitude:Double = Double(0)

    required public init() {
         super.init()
    }
    override public func isInitialized() -> Bool {
     return true
    }
    override public func writeToCodedOutputStream(output:CodedOutputStream) throws {
      if hasFortId {
        try output.writeString(1, value:fortId)
      }
      if hasPokemonId {
        try output.writeFixed64(2, value:pokemonId)
      }
      if hasPlayerLatitude {
        try output.writeDouble(3, value:playerLatitude)
      }
      if hasPlayerLongitude {
        try output.writeDouble(4, value:playerLongitude)
      }
      try unknownFields.writeToCodedOutputStream(output)
    }
    override public func serializedSize() -> Int32 {
      var serialize_size:Int32 = memoizedSerializedSize
      if serialize_size != -1 {
       return serialize_size
      }

      serialize_size = 0
      if hasFortId {
        serialize_size += fortId.computeStringSize(1)
      }
      if hasPokemonId {
        serialize_size += pokemonId.computeFixed64Size(2)
      }
      if hasPlayerLatitude {
        serialize_size += playerLatitude.computeDoubleSize(3)
      }
      if hasPlayerLongitude {
        serialize_size += playerLongitude.computeDoubleSize(4)
      }
      serialize_size += unknownFields.serializedSize()
      memoizedSerializedSize = serialize_size
      return serialize_size
    }
    public class func parseArrayDelimitedFromInputStream(input:NSInputStream) throws -> Array<Pogoprotos.Networking.Requests.Messages.FortDeployPokemonMessage> {
      var mergedArray = Array<Pogoprotos.Networking.Requests.Messages.FortDeployPokemonMessage>()
      while let value = try parseFromDelimitedFromInputStream(input) {
        mergedArray += [value]
      }
      return mergedArray
    }
    public class func parseFromDelimitedFromInputStream(input:NSInputStream) throws -> Pogoprotos.Networking.Requests.Messages.FortDeployPokemonMessage? {
      return try Pogoprotos.Networking.Requests.Messages.FortDeployPokemonMessage.Builder().mergeDelimitedFromInputStream(input)?.build()
    }
    public class func parseFromData(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.FortDeployPokemonMessage {
      return try Pogoprotos.Networking.Requests.Messages.FortDeployPokemonMessage.Builder().mergeFromData(data, extensionRegistry:Pogoprotos.Networking.Requests.Messages.PogoprotosNetworkingRequestsMessagesRoot.sharedInstance.extensionRegistry).build()
    }
    public class func parseFromData(data:NSData, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.FortDeployPokemonMessage {
      return try Pogoprotos.Networking.Requests.Messages.FortDeployPokemonMessage.Builder().mergeFromData(data, extensionRegistry:extensionRegistry).build()
    }
    public class func parseFromInputStream(input:NSInputStream) throws -> Pogoprotos.Networking.Requests.Messages.FortDeployPokemonMessage {
      return try Pogoprotos.Networking.Requests.Messages.FortDeployPokemonMessage.Builder().mergeFromInputStream(input).build()
    }
    public class func parseFromInputStream(input:NSInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.FortDeployPokemonMessage {
      return try Pogoprotos.Networking.Requests.Messages.FortDeployPokemonMessage.Builder().mergeFromInputStream(input, extensionRegistry:extensionRegistry).build()
    }
    public class func parseFromCodedInputStream(input:CodedInputStream) throws -> Pogoprotos.Networking.Requests.Messages.FortDeployPokemonMessage {
      return try Pogoprotos.Networking.Requests.Messages.FortDeployPokemonMessage.Builder().mergeFromCodedInputStream(input).build()
    }
    public class func parseFromCodedInputStream(input:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.FortDeployPokemonMessage {
      return try Pogoprotos.Networking.Requests.Messages.FortDeployPokemonMessage.Builder().mergeFromCodedInputStream(input, extensionRegistry:extensionRegistry).build()
    }
    public class func getBuilder() -> Pogoprotos.Networking.Requests.Messages.FortDeployPokemonMessage.Builder {
      return Pogoprotos.Networking.Requests.Messages.FortDeployPokemonMessage.classBuilder() as! Pogoprotos.Networking.Requests.Messages.FortDeployPokemonMessage.Builder
    }
    public func getBuilder() -> Pogoprotos.Networking.Requests.Messages.FortDeployPokemonMessage.Builder {
      return classBuilder() as! Pogoprotos.Networking.Requests.Messages.FortDeployPokemonMessage.Builder
    }
    override public class func classBuilder() -> MessageBuilder {
      return Pogoprotos.Networking.Requests.Messages.FortDeployPokemonMessage.Builder()
    }
    override public func classBuilder() -> MessageBuilder {
      return Pogoprotos.Networking.Requests.Messages.FortDeployPokemonMessage.Builder()
    }
    public func toBuilder() throws -> Pogoprotos.Networking.Requests.Messages.FortDeployPokemonMessage.Builder {
      return try Pogoprotos.Networking.Requests.Messages.FortDeployPokemonMessage.builderWithPrototype(self)
    }
    public class func builderWithPrototype(prototype:Pogoprotos.Networking.Requests.Messages.FortDeployPokemonMessage) throws -> Pogoprotos.Networking.Requests.Messages.FortDeployPokemonMessage.Builder {
      return try Pogoprotos.Networking.Requests.Messages.FortDeployPokemonMessage.Builder().mergeFrom(prototype)
    }
    override public func encode() throws -> Dictionary<String,AnyObject> {
      guard isInitialized() else {
        throw ProtocolBuffersError.InvalidProtocolBuffer("Uninitialized Message")
      }

      var jsonMap:Dictionary<String,AnyObject> = Dictionary<String,AnyObject>()
      if hasFortId {
        jsonMap["fortId"] = fortId
      }
      if hasPokemonId {
        jsonMap["pokemonId"] = "\(pokemonId)"
      }
      if hasPlayerLatitude {
        jsonMap["playerLatitude"] = NSNumber(double:playerLatitude)
      }
      if hasPlayerLongitude {
        jsonMap["playerLongitude"] = NSNumber(double:playerLongitude)
      }
      return jsonMap
    }
    override class public func decode(jsonMap:Dictionary<String,AnyObject>) throws -> Pogoprotos.Networking.Requests.Messages.FortDeployPokemonMessage {
      return try Pogoprotos.Networking.Requests.Messages.FortDeployPokemonMessage.Builder.decodeToBuilder(jsonMap).build()
    }
    override class public func fromJSON(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.FortDeployPokemonMessage {
      return try Pogoprotos.Networking.Requests.Messages.FortDeployPokemonMessage.Builder.fromJSONToBuilder(data).build()
    }
    override public func getDescription(indent:String) throws -> String {
      var output = ""
      if hasFortId {
        output += "\(indent) fortId: \(fortId) \n"
      }
      if hasPokemonId {
        output += "\(indent) pokemonId: \(pokemonId) \n"
      }
      if hasPlayerLatitude {
        output += "\(indent) playerLatitude: \(playerLatitude) \n"
      }
      if hasPlayerLongitude {
        output += "\(indent) playerLongitude: \(playerLongitude) \n"
      }
      output += unknownFields.getDescription(indent)
      return output
    }
    override public var hashValue:Int {
        get {
            var hashCode:Int = 7
            if hasFortId {
               hashCode = (hashCode &* 31) &+ fortId.hashValue
            }
            if hasPokemonId {
               hashCode = (hashCode &* 31) &+ pokemonId.hashValue
            }
            if hasPlayerLatitude {
               hashCode = (hashCode &* 31) &+ playerLatitude.hashValue
            }
            if hasPlayerLongitude {
               hashCode = (hashCode &* 31) &+ playerLongitude.hashValue
            }
            hashCode = (hashCode &* 31) &+  unknownFields.hashValue
            return hashCode
        }
    }


    //Meta information declaration start

    override public class func className() -> String {
        return "Pogoprotos.Networking.Requests.Messages.FortDeployPokemonMessage"
    }
    override public func className() -> String {
        return "Pogoprotos.Networking.Requests.Messages.FortDeployPokemonMessage"
    }
    override public func classMetaType() -> GeneratedMessage.Type {
        return Pogoprotos.Networking.Requests.Messages.FortDeployPokemonMessage.self
    }
    //Meta information declaration end

    final public class Builder : GeneratedMessageBuilder {
      private var builderResult:Pogoprotos.Networking.Requests.Messages.FortDeployPokemonMessage = Pogoprotos.Networking.Requests.Messages.FortDeployPokemonMessage()
      public func getMessage() -> Pogoprotos.Networking.Requests.Messages.FortDeployPokemonMessage {
          return builderResult
      }

      required override public init () {
         super.init()
      }
      public var hasFortId:Bool {
           get {
                return builderResult.hasFortId
           }
      }
      public var fortId:String {
           get {
                return builderResult.fortId
           }
           set (value) {
               builderResult.hasFortId = true
               builderResult.fortId = value
           }
      }
      public func setFortId(value:String) -> Pogoprotos.Networking.Requests.Messages.FortDeployPokemonMessage.Builder {
        self.fortId = value
        return self
      }
      public func clearFortId() -> Pogoprotos.Networking.Requests.Messages.FortDeployPokemonMessage.Builder{
           builderResult.hasFortId = false
           builderResult.fortId = ""
           return self
      }
      public var hasPokemonId:Bool {
           get {
                return builderResult.hasPokemonId
           }
      }
      public var pokemonId:UInt64 {
           get {
                return builderResult.pokemonId
           }
           set (value) {
               builderResult.hasPokemonId = true
               builderResult.pokemonId = value
           }
      }
      public func setPokemonId(value:UInt64) -> Pogoprotos.Networking.Requests.Messages.FortDeployPokemonMessage.Builder {
        self.pokemonId = value
        return self
      }
      public func clearPokemonId() -> Pogoprotos.Networking.Requests.Messages.FortDeployPokemonMessage.Builder{
           builderResult.hasPokemonId = false
           builderResult.pokemonId = UInt64(0)
           return self
      }
      public var hasPlayerLatitude:Bool {
           get {
                return builderResult.hasPlayerLatitude
           }
      }
      public var playerLatitude:Double {
           get {
                return builderResult.playerLatitude
           }
           set (value) {
               builderResult.hasPlayerLatitude = true
               builderResult.playerLatitude = value
           }
      }
      public func setPlayerLatitude(value:Double) -> Pogoprotos.Networking.Requests.Messages.FortDeployPokemonMessage.Builder {
        self.playerLatitude = value
        return self
      }
      public func clearPlayerLatitude() -> Pogoprotos.Networking.Requests.Messages.FortDeployPokemonMessage.Builder{
           builderResult.hasPlayerLatitude = false
           builderResult.playerLatitude = Double(0)
           return self
      }
      public var hasPlayerLongitude:Bool {
           get {
                return builderResult.hasPlayerLongitude
           }
      }
      public var playerLongitude:Double {
           get {
                return builderResult.playerLongitude
           }
           set (value) {
               builderResult.hasPlayerLongitude = true
               builderResult.playerLongitude = value
           }
      }
      public func setPlayerLongitude(value:Double) -> Pogoprotos.Networking.Requests.Messages.FortDeployPokemonMessage.Builder {
        self.playerLongitude = value
        return self
      }
      public func clearPlayerLongitude() -> Pogoprotos.Networking.Requests.Messages.FortDeployPokemonMessage.Builder{
           builderResult.hasPlayerLongitude = false
           builderResult.playerLongitude = Double(0)
           return self
      }
      override public var internalGetResult:GeneratedMessage {
           get {
              return builderResult
           }
      }
      override public func clear() -> Pogoprotos.Networking.Requests.Messages.FortDeployPokemonMessage.Builder {
        builderResult = Pogoprotos.Networking.Requests.Messages.FortDeployPokemonMessage()
        return self
      }
      override public func clone() throws -> Pogoprotos.Networking.Requests.Messages.FortDeployPokemonMessage.Builder {
        return try Pogoprotos.Networking.Requests.Messages.FortDeployPokemonMessage.builderWithPrototype(builderResult)
      }
      override public func build() throws -> Pogoprotos.Networking.Requests.Messages.FortDeployPokemonMessage {
           try checkInitialized()
           return buildPartial()
      }
      public func buildPartial() -> Pogoprotos.Networking.Requests.Messages.FortDeployPokemonMessage {
        let returnMe:Pogoprotos.Networking.Requests.Messages.FortDeployPokemonMessage = builderResult
        return returnMe
      }
      public func mergeFrom(other:Pogoprotos.Networking.Requests.Messages.FortDeployPokemonMessage) throws -> Pogoprotos.Networking.Requests.Messages.FortDeployPokemonMessage.Builder {
        if other == Pogoprotos.Networking.Requests.Messages.FortDeployPokemonMessage() {
         return self
        }
        if other.hasFortId {
             fortId = other.fortId
        }
        if other.hasPokemonId {
             pokemonId = other.pokemonId
        }
        if other.hasPlayerLatitude {
             playerLatitude = other.playerLatitude
        }
        if other.hasPlayerLongitude {
             playerLongitude = other.playerLongitude
        }
        try mergeUnknownFields(other.unknownFields)
        return self
      }
      override public func mergeFromCodedInputStream(input:CodedInputStream) throws -> Pogoprotos.Networking.Requests.Messages.FortDeployPokemonMessage.Builder {
           return try mergeFromCodedInputStream(input, extensionRegistry:ExtensionRegistry())
      }
      override public func mergeFromCodedInputStream(input:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.FortDeployPokemonMessage.Builder {
        let unknownFieldsBuilder:UnknownFieldSet.Builder = try UnknownFieldSet.builderWithUnknownFields(self.unknownFields)
        while (true) {
          let protobufTag = try input.readTag()
          switch protobufTag {
          case 0: 
            self.unknownFields = try unknownFieldsBuilder.build()
            return self

          case 10:
            fortId = try input.readString()

          case 17:
            pokemonId = try input.readFixed64()

          case 25:
            playerLatitude = try input.readDouble()

          case 33:
            playerLongitude = try input.readDouble()

          default:
            if (!(try parseUnknownField(input,unknownFields:unknownFieldsBuilder, extensionRegistry:extensionRegistry, tag:protobufTag))) {
               unknownFields = try unknownFieldsBuilder.build()
               return self
            }
          }
        }
      }
      override class public func decodeToBuilder(jsonMap:Dictionary<String,AnyObject>) throws -> Pogoprotos.Networking.Requests.Messages.FortDeployPokemonMessage.Builder {
        let resultDecodedBuilder = Pogoprotos.Networking.Requests.Messages.FortDeployPokemonMessage.Builder()
        if let jsonValueFortId = jsonMap["fortId"] as? String {
          resultDecodedBuilder.fortId = jsonValueFortId
        }
        if let jsonValuePokemonId = jsonMap["pokemonId"] as? String {
          resultDecodedBuilder.pokemonId = UInt64(jsonValuePokemonId)!
        }
        if let jsonValuePlayerLatitude = jsonMap["playerLatitude"] as? NSNumber {
          resultDecodedBuilder.playerLatitude = jsonValuePlayerLatitude.doubleValue
        }
        if let jsonValuePlayerLongitude = jsonMap["playerLongitude"] as? NSNumber {
          resultDecodedBuilder.playerLongitude = jsonValuePlayerLongitude.doubleValue
        }
        return resultDecodedBuilder
      }
      override class public func fromJSONToBuilder(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.FortDeployPokemonMessage.Builder {
        let jsonData = try NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions(rawValue: 0))
        guard let jsDataCast = jsonData as? Dictionary<String,AnyObject> else {
          throw ProtocolBuffersError.InvalidProtocolBuffer("Invalid JSON data")
        }
        return try Pogoprotos.Networking.Requests.Messages.FortDeployPokemonMessage.Builder.decodeToBuilder(jsDataCast)
      }
    }

  }

  final public class FortDetailsMessage : GeneratedMessage, GeneratedMessageProtocol {
    public private(set) var hasFortId:Bool = false
    public private(set) var fortId:String = ""

    public private(set) var hasLatitude:Bool = false
    public private(set) var latitude:Double = Double(0)

    public private(set) var hasLongitude:Bool = false
    public private(set) var longitude:Double = Double(0)

    required public init() {
         super.init()
    }
    override public func isInitialized() -> Bool {
     return true
    }
    override public func writeToCodedOutputStream(output:CodedOutputStream) throws {
      if hasFortId {
        try output.writeString(1, value:fortId)
      }
      if hasLatitude {
        try output.writeDouble(2, value:latitude)
      }
      if hasLongitude {
        try output.writeDouble(3, value:longitude)
      }
      try unknownFields.writeToCodedOutputStream(output)
    }
    override public func serializedSize() -> Int32 {
      var serialize_size:Int32 = memoizedSerializedSize
      if serialize_size != -1 {
       return serialize_size
      }

      serialize_size = 0
      if hasFortId {
        serialize_size += fortId.computeStringSize(1)
      }
      if hasLatitude {
        serialize_size += latitude.computeDoubleSize(2)
      }
      if hasLongitude {
        serialize_size += longitude.computeDoubleSize(3)
      }
      serialize_size += unknownFields.serializedSize()
      memoizedSerializedSize = serialize_size
      return serialize_size
    }
    public class func parseArrayDelimitedFromInputStream(input:NSInputStream) throws -> Array<Pogoprotos.Networking.Requests.Messages.FortDetailsMessage> {
      var mergedArray = Array<Pogoprotos.Networking.Requests.Messages.FortDetailsMessage>()
      while let value = try parseFromDelimitedFromInputStream(input) {
        mergedArray += [value]
      }
      return mergedArray
    }
    public class func parseFromDelimitedFromInputStream(input:NSInputStream) throws -> Pogoprotos.Networking.Requests.Messages.FortDetailsMessage? {
      return try Pogoprotos.Networking.Requests.Messages.FortDetailsMessage.Builder().mergeDelimitedFromInputStream(input)?.build()
    }
    public class func parseFromData(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.FortDetailsMessage {
      return try Pogoprotos.Networking.Requests.Messages.FortDetailsMessage.Builder().mergeFromData(data, extensionRegistry:Pogoprotos.Networking.Requests.Messages.PogoprotosNetworkingRequestsMessagesRoot.sharedInstance.extensionRegistry).build()
    }
    public class func parseFromData(data:NSData, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.FortDetailsMessage {
      return try Pogoprotos.Networking.Requests.Messages.FortDetailsMessage.Builder().mergeFromData(data, extensionRegistry:extensionRegistry).build()
    }
    public class func parseFromInputStream(input:NSInputStream) throws -> Pogoprotos.Networking.Requests.Messages.FortDetailsMessage {
      return try Pogoprotos.Networking.Requests.Messages.FortDetailsMessage.Builder().mergeFromInputStream(input).build()
    }
    public class func parseFromInputStream(input:NSInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.FortDetailsMessage {
      return try Pogoprotos.Networking.Requests.Messages.FortDetailsMessage.Builder().mergeFromInputStream(input, extensionRegistry:extensionRegistry).build()
    }
    public class func parseFromCodedInputStream(input:CodedInputStream) throws -> Pogoprotos.Networking.Requests.Messages.FortDetailsMessage {
      return try Pogoprotos.Networking.Requests.Messages.FortDetailsMessage.Builder().mergeFromCodedInputStream(input).build()
    }
    public class func parseFromCodedInputStream(input:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.FortDetailsMessage {
      return try Pogoprotos.Networking.Requests.Messages.FortDetailsMessage.Builder().mergeFromCodedInputStream(input, extensionRegistry:extensionRegistry).build()
    }
    public class func getBuilder() -> Pogoprotos.Networking.Requests.Messages.FortDetailsMessage.Builder {
      return Pogoprotos.Networking.Requests.Messages.FortDetailsMessage.classBuilder() as! Pogoprotos.Networking.Requests.Messages.FortDetailsMessage.Builder
    }
    public func getBuilder() -> Pogoprotos.Networking.Requests.Messages.FortDetailsMessage.Builder {
      return classBuilder() as! Pogoprotos.Networking.Requests.Messages.FortDetailsMessage.Builder
    }
    override public class func classBuilder() -> MessageBuilder {
      return Pogoprotos.Networking.Requests.Messages.FortDetailsMessage.Builder()
    }
    override public func classBuilder() -> MessageBuilder {
      return Pogoprotos.Networking.Requests.Messages.FortDetailsMessage.Builder()
    }
    public func toBuilder() throws -> Pogoprotos.Networking.Requests.Messages.FortDetailsMessage.Builder {
      return try Pogoprotos.Networking.Requests.Messages.FortDetailsMessage.builderWithPrototype(self)
    }
    public class func builderWithPrototype(prototype:Pogoprotos.Networking.Requests.Messages.FortDetailsMessage) throws -> Pogoprotos.Networking.Requests.Messages.FortDetailsMessage.Builder {
      return try Pogoprotos.Networking.Requests.Messages.FortDetailsMessage.Builder().mergeFrom(prototype)
    }
    override public func encode() throws -> Dictionary<String,AnyObject> {
      guard isInitialized() else {
        throw ProtocolBuffersError.InvalidProtocolBuffer("Uninitialized Message")
      }

      var jsonMap:Dictionary<String,AnyObject> = Dictionary<String,AnyObject>()
      if hasFortId {
        jsonMap["fortId"] = fortId
      }
      if hasLatitude {
        jsonMap["latitude"] = NSNumber(double:latitude)
      }
      if hasLongitude {
        jsonMap["longitude"] = NSNumber(double:longitude)
      }
      return jsonMap
    }
    override class public func decode(jsonMap:Dictionary<String,AnyObject>) throws -> Pogoprotos.Networking.Requests.Messages.FortDetailsMessage {
      return try Pogoprotos.Networking.Requests.Messages.FortDetailsMessage.Builder.decodeToBuilder(jsonMap).build()
    }
    override class public func fromJSON(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.FortDetailsMessage {
      return try Pogoprotos.Networking.Requests.Messages.FortDetailsMessage.Builder.fromJSONToBuilder(data).build()
    }
    override public func getDescription(indent:String) throws -> String {
      var output = ""
      if hasFortId {
        output += "\(indent) fortId: \(fortId) \n"
      }
      if hasLatitude {
        output += "\(indent) latitude: \(latitude) \n"
      }
      if hasLongitude {
        output += "\(indent) longitude: \(longitude) \n"
      }
      output += unknownFields.getDescription(indent)
      return output
    }
    override public var hashValue:Int {
        get {
            var hashCode:Int = 7
            if hasFortId {
               hashCode = (hashCode &* 31) &+ fortId.hashValue
            }
            if hasLatitude {
               hashCode = (hashCode &* 31) &+ latitude.hashValue
            }
            if hasLongitude {
               hashCode = (hashCode &* 31) &+ longitude.hashValue
            }
            hashCode = (hashCode &* 31) &+  unknownFields.hashValue
            return hashCode
        }
    }


    //Meta information declaration start

    override public class func className() -> String {
        return "Pogoprotos.Networking.Requests.Messages.FortDetailsMessage"
    }
    override public func className() -> String {
        return "Pogoprotos.Networking.Requests.Messages.FortDetailsMessage"
    }
    override public func classMetaType() -> GeneratedMessage.Type {
        return Pogoprotos.Networking.Requests.Messages.FortDetailsMessage.self
    }
    //Meta information declaration end

    final public class Builder : GeneratedMessageBuilder {
      private var builderResult:Pogoprotos.Networking.Requests.Messages.FortDetailsMessage = Pogoprotos.Networking.Requests.Messages.FortDetailsMessage()
      public func getMessage() -> Pogoprotos.Networking.Requests.Messages.FortDetailsMessage {
          return builderResult
      }

      required override public init () {
         super.init()
      }
      public var hasFortId:Bool {
           get {
                return builderResult.hasFortId
           }
      }
      public var fortId:String {
           get {
                return builderResult.fortId
           }
           set (value) {
               builderResult.hasFortId = true
               builderResult.fortId = value
           }
      }
      public func setFortId(value:String) -> Pogoprotos.Networking.Requests.Messages.FortDetailsMessage.Builder {
        self.fortId = value
        return self
      }
      public func clearFortId() -> Pogoprotos.Networking.Requests.Messages.FortDetailsMessage.Builder{
           builderResult.hasFortId = false
           builderResult.fortId = ""
           return self
      }
      public var hasLatitude:Bool {
           get {
                return builderResult.hasLatitude
           }
      }
      public var latitude:Double {
           get {
                return builderResult.latitude
           }
           set (value) {
               builderResult.hasLatitude = true
               builderResult.latitude = value
           }
      }
      public func setLatitude(value:Double) -> Pogoprotos.Networking.Requests.Messages.FortDetailsMessage.Builder {
        self.latitude = value
        return self
      }
      public func clearLatitude() -> Pogoprotos.Networking.Requests.Messages.FortDetailsMessage.Builder{
           builderResult.hasLatitude = false
           builderResult.latitude = Double(0)
           return self
      }
      public var hasLongitude:Bool {
           get {
                return builderResult.hasLongitude
           }
      }
      public var longitude:Double {
           get {
                return builderResult.longitude
           }
           set (value) {
               builderResult.hasLongitude = true
               builderResult.longitude = value
           }
      }
      public func setLongitude(value:Double) -> Pogoprotos.Networking.Requests.Messages.FortDetailsMessage.Builder {
        self.longitude = value
        return self
      }
      public func clearLongitude() -> Pogoprotos.Networking.Requests.Messages.FortDetailsMessage.Builder{
           builderResult.hasLongitude = false
           builderResult.longitude = Double(0)
           return self
      }
      override public var internalGetResult:GeneratedMessage {
           get {
              return builderResult
           }
      }
      override public func clear() -> Pogoprotos.Networking.Requests.Messages.FortDetailsMessage.Builder {
        builderResult = Pogoprotos.Networking.Requests.Messages.FortDetailsMessage()
        return self
      }
      override public func clone() throws -> Pogoprotos.Networking.Requests.Messages.FortDetailsMessage.Builder {
        return try Pogoprotos.Networking.Requests.Messages.FortDetailsMessage.builderWithPrototype(builderResult)
      }
      override public func build() throws -> Pogoprotos.Networking.Requests.Messages.FortDetailsMessage {
           try checkInitialized()
           return buildPartial()
      }
      public func buildPartial() -> Pogoprotos.Networking.Requests.Messages.FortDetailsMessage {
        let returnMe:Pogoprotos.Networking.Requests.Messages.FortDetailsMessage = builderResult
        return returnMe
      }
      public func mergeFrom(other:Pogoprotos.Networking.Requests.Messages.FortDetailsMessage) throws -> Pogoprotos.Networking.Requests.Messages.FortDetailsMessage.Builder {
        if other == Pogoprotos.Networking.Requests.Messages.FortDetailsMessage() {
         return self
        }
        if other.hasFortId {
             fortId = other.fortId
        }
        if other.hasLatitude {
             latitude = other.latitude
        }
        if other.hasLongitude {
             longitude = other.longitude
        }
        try mergeUnknownFields(other.unknownFields)
        return self
      }
      override public func mergeFromCodedInputStream(input:CodedInputStream) throws -> Pogoprotos.Networking.Requests.Messages.FortDetailsMessage.Builder {
           return try mergeFromCodedInputStream(input, extensionRegistry:ExtensionRegistry())
      }
      override public func mergeFromCodedInputStream(input:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.FortDetailsMessage.Builder {
        let unknownFieldsBuilder:UnknownFieldSet.Builder = try UnknownFieldSet.builderWithUnknownFields(self.unknownFields)
        while (true) {
          let protobufTag = try input.readTag()
          switch protobufTag {
          case 0: 
            self.unknownFields = try unknownFieldsBuilder.build()
            return self

          case 10:
            fortId = try input.readString()

          case 17:
            latitude = try input.readDouble()

          case 25:
            longitude = try input.readDouble()

          default:
            if (!(try parseUnknownField(input,unknownFields:unknownFieldsBuilder, extensionRegistry:extensionRegistry, tag:protobufTag))) {
               unknownFields = try unknownFieldsBuilder.build()
               return self
            }
          }
        }
      }
      override class public func decodeToBuilder(jsonMap:Dictionary<String,AnyObject>) throws -> Pogoprotos.Networking.Requests.Messages.FortDetailsMessage.Builder {
        let resultDecodedBuilder = Pogoprotos.Networking.Requests.Messages.FortDetailsMessage.Builder()
        if let jsonValueFortId = jsonMap["fortId"] as? String {
          resultDecodedBuilder.fortId = jsonValueFortId
        }
        if let jsonValueLatitude = jsonMap["latitude"] as? NSNumber {
          resultDecodedBuilder.latitude = jsonValueLatitude.doubleValue
        }
        if let jsonValueLongitude = jsonMap["longitude"] as? NSNumber {
          resultDecodedBuilder.longitude = jsonValueLongitude.doubleValue
        }
        return resultDecodedBuilder
      }
      override class public func fromJSONToBuilder(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.FortDetailsMessage.Builder {
        let jsonData = try NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions(rawValue: 0))
        guard let jsDataCast = jsonData as? Dictionary<String,AnyObject> else {
          throw ProtocolBuffersError.InvalidProtocolBuffer("Invalid JSON data")
        }
        return try Pogoprotos.Networking.Requests.Messages.FortDetailsMessage.Builder.decodeToBuilder(jsDataCast)
      }
    }

  }

  final public class FortRecallPokemonMessage : GeneratedMessage, GeneratedMessageProtocol {
    public private(set) var hasFortId:Bool = false
    public private(set) var fortId:String = ""

    public private(set) var hasPokemonId:Bool = false
    public private(set) var pokemonId:UInt64 = UInt64(0)

    public private(set) var hasPlayerLatitude:Bool = false
    public private(set) var playerLatitude:Double = Double(0)

    public private(set) var hasPlayerLongitude:Bool = false
    public private(set) var playerLongitude:Double = Double(0)

    required public init() {
         super.init()
    }
    override public func isInitialized() -> Bool {
     return true
    }
    override public func writeToCodedOutputStream(output:CodedOutputStream) throws {
      if hasFortId {
        try output.writeString(1, value:fortId)
      }
      if hasPokemonId {
        try output.writeFixed64(2, value:pokemonId)
      }
      if hasPlayerLatitude {
        try output.writeDouble(3, value:playerLatitude)
      }
      if hasPlayerLongitude {
        try output.writeDouble(4, value:playerLongitude)
      }
      try unknownFields.writeToCodedOutputStream(output)
    }
    override public func serializedSize() -> Int32 {
      var serialize_size:Int32 = memoizedSerializedSize
      if serialize_size != -1 {
       return serialize_size
      }

      serialize_size = 0
      if hasFortId {
        serialize_size += fortId.computeStringSize(1)
      }
      if hasPokemonId {
        serialize_size += pokemonId.computeFixed64Size(2)
      }
      if hasPlayerLatitude {
        serialize_size += playerLatitude.computeDoubleSize(3)
      }
      if hasPlayerLongitude {
        serialize_size += playerLongitude.computeDoubleSize(4)
      }
      serialize_size += unknownFields.serializedSize()
      memoizedSerializedSize = serialize_size
      return serialize_size
    }
    public class func parseArrayDelimitedFromInputStream(input:NSInputStream) throws -> Array<Pogoprotos.Networking.Requests.Messages.FortRecallPokemonMessage> {
      var mergedArray = Array<Pogoprotos.Networking.Requests.Messages.FortRecallPokemonMessage>()
      while let value = try parseFromDelimitedFromInputStream(input) {
        mergedArray += [value]
      }
      return mergedArray
    }
    public class func parseFromDelimitedFromInputStream(input:NSInputStream) throws -> Pogoprotos.Networking.Requests.Messages.FortRecallPokemonMessage? {
      return try Pogoprotos.Networking.Requests.Messages.FortRecallPokemonMessage.Builder().mergeDelimitedFromInputStream(input)?.build()
    }
    public class func parseFromData(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.FortRecallPokemonMessage {
      return try Pogoprotos.Networking.Requests.Messages.FortRecallPokemonMessage.Builder().mergeFromData(data, extensionRegistry:Pogoprotos.Networking.Requests.Messages.PogoprotosNetworkingRequestsMessagesRoot.sharedInstance.extensionRegistry).build()
    }
    public class func parseFromData(data:NSData, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.FortRecallPokemonMessage {
      return try Pogoprotos.Networking.Requests.Messages.FortRecallPokemonMessage.Builder().mergeFromData(data, extensionRegistry:extensionRegistry).build()
    }
    public class func parseFromInputStream(input:NSInputStream) throws -> Pogoprotos.Networking.Requests.Messages.FortRecallPokemonMessage {
      return try Pogoprotos.Networking.Requests.Messages.FortRecallPokemonMessage.Builder().mergeFromInputStream(input).build()
    }
    public class func parseFromInputStream(input:NSInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.FortRecallPokemonMessage {
      return try Pogoprotos.Networking.Requests.Messages.FortRecallPokemonMessage.Builder().mergeFromInputStream(input, extensionRegistry:extensionRegistry).build()
    }
    public class func parseFromCodedInputStream(input:CodedInputStream) throws -> Pogoprotos.Networking.Requests.Messages.FortRecallPokemonMessage {
      return try Pogoprotos.Networking.Requests.Messages.FortRecallPokemonMessage.Builder().mergeFromCodedInputStream(input).build()
    }
    public class func parseFromCodedInputStream(input:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.FortRecallPokemonMessage {
      return try Pogoprotos.Networking.Requests.Messages.FortRecallPokemonMessage.Builder().mergeFromCodedInputStream(input, extensionRegistry:extensionRegistry).build()
    }
    public class func getBuilder() -> Pogoprotos.Networking.Requests.Messages.FortRecallPokemonMessage.Builder {
      return Pogoprotos.Networking.Requests.Messages.FortRecallPokemonMessage.classBuilder() as! Pogoprotos.Networking.Requests.Messages.FortRecallPokemonMessage.Builder
    }
    public func getBuilder() -> Pogoprotos.Networking.Requests.Messages.FortRecallPokemonMessage.Builder {
      return classBuilder() as! Pogoprotos.Networking.Requests.Messages.FortRecallPokemonMessage.Builder
    }
    override public class func classBuilder() -> MessageBuilder {
      return Pogoprotos.Networking.Requests.Messages.FortRecallPokemonMessage.Builder()
    }
    override public func classBuilder() -> MessageBuilder {
      return Pogoprotos.Networking.Requests.Messages.FortRecallPokemonMessage.Builder()
    }
    public func toBuilder() throws -> Pogoprotos.Networking.Requests.Messages.FortRecallPokemonMessage.Builder {
      return try Pogoprotos.Networking.Requests.Messages.FortRecallPokemonMessage.builderWithPrototype(self)
    }
    public class func builderWithPrototype(prototype:Pogoprotos.Networking.Requests.Messages.FortRecallPokemonMessage) throws -> Pogoprotos.Networking.Requests.Messages.FortRecallPokemonMessage.Builder {
      return try Pogoprotos.Networking.Requests.Messages.FortRecallPokemonMessage.Builder().mergeFrom(prototype)
    }
    override public func encode() throws -> Dictionary<String,AnyObject> {
      guard isInitialized() else {
        throw ProtocolBuffersError.InvalidProtocolBuffer("Uninitialized Message")
      }

      var jsonMap:Dictionary<String,AnyObject> = Dictionary<String,AnyObject>()
      if hasFortId {
        jsonMap["fortId"] = fortId
      }
      if hasPokemonId {
        jsonMap["pokemonId"] = "\(pokemonId)"
      }
      if hasPlayerLatitude {
        jsonMap["playerLatitude"] = NSNumber(double:playerLatitude)
      }
      if hasPlayerLongitude {
        jsonMap["playerLongitude"] = NSNumber(double:playerLongitude)
      }
      return jsonMap
    }
    override class public func decode(jsonMap:Dictionary<String,AnyObject>) throws -> Pogoprotos.Networking.Requests.Messages.FortRecallPokemonMessage {
      return try Pogoprotos.Networking.Requests.Messages.FortRecallPokemonMessage.Builder.decodeToBuilder(jsonMap).build()
    }
    override class public func fromJSON(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.FortRecallPokemonMessage {
      return try Pogoprotos.Networking.Requests.Messages.FortRecallPokemonMessage.Builder.fromJSONToBuilder(data).build()
    }
    override public func getDescription(indent:String) throws -> String {
      var output = ""
      if hasFortId {
        output += "\(indent) fortId: \(fortId) \n"
      }
      if hasPokemonId {
        output += "\(indent) pokemonId: \(pokemonId) \n"
      }
      if hasPlayerLatitude {
        output += "\(indent) playerLatitude: \(playerLatitude) \n"
      }
      if hasPlayerLongitude {
        output += "\(indent) playerLongitude: \(playerLongitude) \n"
      }
      output += unknownFields.getDescription(indent)
      return output
    }
    override public var hashValue:Int {
        get {
            var hashCode:Int = 7
            if hasFortId {
               hashCode = (hashCode &* 31) &+ fortId.hashValue
            }
            if hasPokemonId {
               hashCode = (hashCode &* 31) &+ pokemonId.hashValue
            }
            if hasPlayerLatitude {
               hashCode = (hashCode &* 31) &+ playerLatitude.hashValue
            }
            if hasPlayerLongitude {
               hashCode = (hashCode &* 31) &+ playerLongitude.hashValue
            }
            hashCode = (hashCode &* 31) &+  unknownFields.hashValue
            return hashCode
        }
    }


    //Meta information declaration start

    override public class func className() -> String {
        return "Pogoprotos.Networking.Requests.Messages.FortRecallPokemonMessage"
    }
    override public func className() -> String {
        return "Pogoprotos.Networking.Requests.Messages.FortRecallPokemonMessage"
    }
    override public func classMetaType() -> GeneratedMessage.Type {
        return Pogoprotos.Networking.Requests.Messages.FortRecallPokemonMessage.self
    }
    //Meta information declaration end

    final public class Builder : GeneratedMessageBuilder {
      private var builderResult:Pogoprotos.Networking.Requests.Messages.FortRecallPokemonMessage = Pogoprotos.Networking.Requests.Messages.FortRecallPokemonMessage()
      public func getMessage() -> Pogoprotos.Networking.Requests.Messages.FortRecallPokemonMessage {
          return builderResult
      }

      required override public init () {
         super.init()
      }
      public var hasFortId:Bool {
           get {
                return builderResult.hasFortId
           }
      }
      public var fortId:String {
           get {
                return builderResult.fortId
           }
           set (value) {
               builderResult.hasFortId = true
               builderResult.fortId = value
           }
      }
      public func setFortId(value:String) -> Pogoprotos.Networking.Requests.Messages.FortRecallPokemonMessage.Builder {
        self.fortId = value
        return self
      }
      public func clearFortId() -> Pogoprotos.Networking.Requests.Messages.FortRecallPokemonMessage.Builder{
           builderResult.hasFortId = false
           builderResult.fortId = ""
           return self
      }
      public var hasPokemonId:Bool {
           get {
                return builderResult.hasPokemonId
           }
      }
      public var pokemonId:UInt64 {
           get {
                return builderResult.pokemonId
           }
           set (value) {
               builderResult.hasPokemonId = true
               builderResult.pokemonId = value
           }
      }
      public func setPokemonId(value:UInt64) -> Pogoprotos.Networking.Requests.Messages.FortRecallPokemonMessage.Builder {
        self.pokemonId = value
        return self
      }
      public func clearPokemonId() -> Pogoprotos.Networking.Requests.Messages.FortRecallPokemonMessage.Builder{
           builderResult.hasPokemonId = false
           builderResult.pokemonId = UInt64(0)
           return self
      }
      public var hasPlayerLatitude:Bool {
           get {
                return builderResult.hasPlayerLatitude
           }
      }
      public var playerLatitude:Double {
           get {
                return builderResult.playerLatitude
           }
           set (value) {
               builderResult.hasPlayerLatitude = true
               builderResult.playerLatitude = value
           }
      }
      public func setPlayerLatitude(value:Double) -> Pogoprotos.Networking.Requests.Messages.FortRecallPokemonMessage.Builder {
        self.playerLatitude = value
        return self
      }
      public func clearPlayerLatitude() -> Pogoprotos.Networking.Requests.Messages.FortRecallPokemonMessage.Builder{
           builderResult.hasPlayerLatitude = false
           builderResult.playerLatitude = Double(0)
           return self
      }
      public var hasPlayerLongitude:Bool {
           get {
                return builderResult.hasPlayerLongitude
           }
      }
      public var playerLongitude:Double {
           get {
                return builderResult.playerLongitude
           }
           set (value) {
               builderResult.hasPlayerLongitude = true
               builderResult.playerLongitude = value
           }
      }
      public func setPlayerLongitude(value:Double) -> Pogoprotos.Networking.Requests.Messages.FortRecallPokemonMessage.Builder {
        self.playerLongitude = value
        return self
      }
      public func clearPlayerLongitude() -> Pogoprotos.Networking.Requests.Messages.FortRecallPokemonMessage.Builder{
           builderResult.hasPlayerLongitude = false
           builderResult.playerLongitude = Double(0)
           return self
      }
      override public var internalGetResult:GeneratedMessage {
           get {
              return builderResult
           }
      }
      override public func clear() -> Pogoprotos.Networking.Requests.Messages.FortRecallPokemonMessage.Builder {
        builderResult = Pogoprotos.Networking.Requests.Messages.FortRecallPokemonMessage()
        return self
      }
      override public func clone() throws -> Pogoprotos.Networking.Requests.Messages.FortRecallPokemonMessage.Builder {
        return try Pogoprotos.Networking.Requests.Messages.FortRecallPokemonMessage.builderWithPrototype(builderResult)
      }
      override public func build() throws -> Pogoprotos.Networking.Requests.Messages.FortRecallPokemonMessage {
           try checkInitialized()
           return buildPartial()
      }
      public func buildPartial() -> Pogoprotos.Networking.Requests.Messages.FortRecallPokemonMessage {
        let returnMe:Pogoprotos.Networking.Requests.Messages.FortRecallPokemonMessage = builderResult
        return returnMe
      }
      public func mergeFrom(other:Pogoprotos.Networking.Requests.Messages.FortRecallPokemonMessage) throws -> Pogoprotos.Networking.Requests.Messages.FortRecallPokemonMessage.Builder {
        if other == Pogoprotos.Networking.Requests.Messages.FortRecallPokemonMessage() {
         return self
        }
        if other.hasFortId {
             fortId = other.fortId
        }
        if other.hasPokemonId {
             pokemonId = other.pokemonId
        }
        if other.hasPlayerLatitude {
             playerLatitude = other.playerLatitude
        }
        if other.hasPlayerLongitude {
             playerLongitude = other.playerLongitude
        }
        try mergeUnknownFields(other.unknownFields)
        return self
      }
      override public func mergeFromCodedInputStream(input:CodedInputStream) throws -> Pogoprotos.Networking.Requests.Messages.FortRecallPokemonMessage.Builder {
           return try mergeFromCodedInputStream(input, extensionRegistry:ExtensionRegistry())
      }
      override public func mergeFromCodedInputStream(input:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.FortRecallPokemonMessage.Builder {
        let unknownFieldsBuilder:UnknownFieldSet.Builder = try UnknownFieldSet.builderWithUnknownFields(self.unknownFields)
        while (true) {
          let protobufTag = try input.readTag()
          switch protobufTag {
          case 0: 
            self.unknownFields = try unknownFieldsBuilder.build()
            return self

          case 10:
            fortId = try input.readString()

          case 17:
            pokemonId = try input.readFixed64()

          case 25:
            playerLatitude = try input.readDouble()

          case 33:
            playerLongitude = try input.readDouble()

          default:
            if (!(try parseUnknownField(input,unknownFields:unknownFieldsBuilder, extensionRegistry:extensionRegistry, tag:protobufTag))) {
               unknownFields = try unknownFieldsBuilder.build()
               return self
            }
          }
        }
      }
      override class public func decodeToBuilder(jsonMap:Dictionary<String,AnyObject>) throws -> Pogoprotos.Networking.Requests.Messages.FortRecallPokemonMessage.Builder {
        let resultDecodedBuilder = Pogoprotos.Networking.Requests.Messages.FortRecallPokemonMessage.Builder()
        if let jsonValueFortId = jsonMap["fortId"] as? String {
          resultDecodedBuilder.fortId = jsonValueFortId
        }
        if let jsonValuePokemonId = jsonMap["pokemonId"] as? String {
          resultDecodedBuilder.pokemonId = UInt64(jsonValuePokemonId)!
        }
        if let jsonValuePlayerLatitude = jsonMap["playerLatitude"] as? NSNumber {
          resultDecodedBuilder.playerLatitude = jsonValuePlayerLatitude.doubleValue
        }
        if let jsonValuePlayerLongitude = jsonMap["playerLongitude"] as? NSNumber {
          resultDecodedBuilder.playerLongitude = jsonValuePlayerLongitude.doubleValue
        }
        return resultDecodedBuilder
      }
      override class public func fromJSONToBuilder(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.FortRecallPokemonMessage.Builder {
        let jsonData = try NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions(rawValue: 0))
        guard let jsDataCast = jsonData as? Dictionary<String,AnyObject> else {
          throw ProtocolBuffersError.InvalidProtocolBuffer("Invalid JSON data")
        }
        return try Pogoprotos.Networking.Requests.Messages.FortRecallPokemonMessage.Builder.decodeToBuilder(jsDataCast)
      }
    }

  }

  final public class FortSearchMessage : GeneratedMessage, GeneratedMessageProtocol {
    public private(set) var hasFortId:Bool = false
    public private(set) var fortId:String = ""

    public private(set) var hasPlayerLatitude:Bool = false
    public private(set) var playerLatitude:Double = Double(0)

    public private(set) var hasPlayerLongitude:Bool = false
    public private(set) var playerLongitude:Double = Double(0)

    public private(set) var hasFortLatitude:Bool = false
    public private(set) var fortLatitude:Double = Double(0)

    public private(set) var hasFortLongitude:Bool = false
    public private(set) var fortLongitude:Double = Double(0)

    required public init() {
         super.init()
    }
    override public func isInitialized() -> Bool {
     return true
    }
    override public func writeToCodedOutputStream(output:CodedOutputStream) throws {
      if hasFortId {
        try output.writeString(1, value:fortId)
      }
      if hasPlayerLatitude {
        try output.writeDouble(2, value:playerLatitude)
      }
      if hasPlayerLongitude {
        try output.writeDouble(3, value:playerLongitude)
      }
      if hasFortLatitude {
        try output.writeDouble(4, value:fortLatitude)
      }
      if hasFortLongitude {
        try output.writeDouble(5, value:fortLongitude)
      }
      try unknownFields.writeToCodedOutputStream(output)
    }
    override public func serializedSize() -> Int32 {
      var serialize_size:Int32 = memoizedSerializedSize
      if serialize_size != -1 {
       return serialize_size
      }

      serialize_size = 0
      if hasFortId {
        serialize_size += fortId.computeStringSize(1)
      }
      if hasPlayerLatitude {
        serialize_size += playerLatitude.computeDoubleSize(2)
      }
      if hasPlayerLongitude {
        serialize_size += playerLongitude.computeDoubleSize(3)
      }
      if hasFortLatitude {
        serialize_size += fortLatitude.computeDoubleSize(4)
      }
      if hasFortLongitude {
        serialize_size += fortLongitude.computeDoubleSize(5)
      }
      serialize_size += unknownFields.serializedSize()
      memoizedSerializedSize = serialize_size
      return serialize_size
    }
    public class func parseArrayDelimitedFromInputStream(input:NSInputStream) throws -> Array<Pogoprotos.Networking.Requests.Messages.FortSearchMessage> {
      var mergedArray = Array<Pogoprotos.Networking.Requests.Messages.FortSearchMessage>()
      while let value = try parseFromDelimitedFromInputStream(input) {
        mergedArray += [value]
      }
      return mergedArray
    }
    public class func parseFromDelimitedFromInputStream(input:NSInputStream) throws -> Pogoprotos.Networking.Requests.Messages.FortSearchMessage? {
      return try Pogoprotos.Networking.Requests.Messages.FortSearchMessage.Builder().mergeDelimitedFromInputStream(input)?.build()
    }
    public class func parseFromData(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.FortSearchMessage {
      return try Pogoprotos.Networking.Requests.Messages.FortSearchMessage.Builder().mergeFromData(data, extensionRegistry:Pogoprotos.Networking.Requests.Messages.PogoprotosNetworkingRequestsMessagesRoot.sharedInstance.extensionRegistry).build()
    }
    public class func parseFromData(data:NSData, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.FortSearchMessage {
      return try Pogoprotos.Networking.Requests.Messages.FortSearchMessage.Builder().mergeFromData(data, extensionRegistry:extensionRegistry).build()
    }
    public class func parseFromInputStream(input:NSInputStream) throws -> Pogoprotos.Networking.Requests.Messages.FortSearchMessage {
      return try Pogoprotos.Networking.Requests.Messages.FortSearchMessage.Builder().mergeFromInputStream(input).build()
    }
    public class func parseFromInputStream(input:NSInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.FortSearchMessage {
      return try Pogoprotos.Networking.Requests.Messages.FortSearchMessage.Builder().mergeFromInputStream(input, extensionRegistry:extensionRegistry).build()
    }
    public class func parseFromCodedInputStream(input:CodedInputStream) throws -> Pogoprotos.Networking.Requests.Messages.FortSearchMessage {
      return try Pogoprotos.Networking.Requests.Messages.FortSearchMessage.Builder().mergeFromCodedInputStream(input).build()
    }
    public class func parseFromCodedInputStream(input:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.FortSearchMessage {
      return try Pogoprotos.Networking.Requests.Messages.FortSearchMessage.Builder().mergeFromCodedInputStream(input, extensionRegistry:extensionRegistry).build()
    }
    public class func getBuilder() -> Pogoprotos.Networking.Requests.Messages.FortSearchMessage.Builder {
      return Pogoprotos.Networking.Requests.Messages.FortSearchMessage.classBuilder() as! Pogoprotos.Networking.Requests.Messages.FortSearchMessage.Builder
    }
    public func getBuilder() -> Pogoprotos.Networking.Requests.Messages.FortSearchMessage.Builder {
      return classBuilder() as! Pogoprotos.Networking.Requests.Messages.FortSearchMessage.Builder
    }
    override public class func classBuilder() -> MessageBuilder {
      return Pogoprotos.Networking.Requests.Messages.FortSearchMessage.Builder()
    }
    override public func classBuilder() -> MessageBuilder {
      return Pogoprotos.Networking.Requests.Messages.FortSearchMessage.Builder()
    }
    public func toBuilder() throws -> Pogoprotos.Networking.Requests.Messages.FortSearchMessage.Builder {
      return try Pogoprotos.Networking.Requests.Messages.FortSearchMessage.builderWithPrototype(self)
    }
    public class func builderWithPrototype(prototype:Pogoprotos.Networking.Requests.Messages.FortSearchMessage) throws -> Pogoprotos.Networking.Requests.Messages.FortSearchMessage.Builder {
      return try Pogoprotos.Networking.Requests.Messages.FortSearchMessage.Builder().mergeFrom(prototype)
    }
    override public func encode() throws -> Dictionary<String,AnyObject> {
      guard isInitialized() else {
        throw ProtocolBuffersError.InvalidProtocolBuffer("Uninitialized Message")
      }

      var jsonMap:Dictionary<String,AnyObject> = Dictionary<String,AnyObject>()
      if hasFortId {
        jsonMap["fortId"] = fortId
      }
      if hasPlayerLatitude {
        jsonMap["playerLatitude"] = NSNumber(double:playerLatitude)
      }
      if hasPlayerLongitude {
        jsonMap["playerLongitude"] = NSNumber(double:playerLongitude)
      }
      if hasFortLatitude {
        jsonMap["fortLatitude"] = NSNumber(double:fortLatitude)
      }
      if hasFortLongitude {
        jsonMap["fortLongitude"] = NSNumber(double:fortLongitude)
      }
      return jsonMap
    }
    override class public func decode(jsonMap:Dictionary<String,AnyObject>) throws -> Pogoprotos.Networking.Requests.Messages.FortSearchMessage {
      return try Pogoprotos.Networking.Requests.Messages.FortSearchMessage.Builder.decodeToBuilder(jsonMap).build()
    }
    override class public func fromJSON(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.FortSearchMessage {
      return try Pogoprotos.Networking.Requests.Messages.FortSearchMessage.Builder.fromJSONToBuilder(data).build()
    }
    override public func getDescription(indent:String) throws -> String {
      var output = ""
      if hasFortId {
        output += "\(indent) fortId: \(fortId) \n"
      }
      if hasPlayerLatitude {
        output += "\(indent) playerLatitude: \(playerLatitude) \n"
      }
      if hasPlayerLongitude {
        output += "\(indent) playerLongitude: \(playerLongitude) \n"
      }
      if hasFortLatitude {
        output += "\(indent) fortLatitude: \(fortLatitude) \n"
      }
      if hasFortLongitude {
        output += "\(indent) fortLongitude: \(fortLongitude) \n"
      }
      output += unknownFields.getDescription(indent)
      return output
    }
    override public var hashValue:Int {
        get {
            var hashCode:Int = 7
            if hasFortId {
               hashCode = (hashCode &* 31) &+ fortId.hashValue
            }
            if hasPlayerLatitude {
               hashCode = (hashCode &* 31) &+ playerLatitude.hashValue
            }
            if hasPlayerLongitude {
               hashCode = (hashCode &* 31) &+ playerLongitude.hashValue
            }
            if hasFortLatitude {
               hashCode = (hashCode &* 31) &+ fortLatitude.hashValue
            }
            if hasFortLongitude {
               hashCode = (hashCode &* 31) &+ fortLongitude.hashValue
            }
            hashCode = (hashCode &* 31) &+  unknownFields.hashValue
            return hashCode
        }
    }


    //Meta information declaration start

    override public class func className() -> String {
        return "Pogoprotos.Networking.Requests.Messages.FortSearchMessage"
    }
    override public func className() -> String {
        return "Pogoprotos.Networking.Requests.Messages.FortSearchMessage"
    }
    override public func classMetaType() -> GeneratedMessage.Type {
        return Pogoprotos.Networking.Requests.Messages.FortSearchMessage.self
    }
    //Meta information declaration end

    final public class Builder : GeneratedMessageBuilder {
      private var builderResult:Pogoprotos.Networking.Requests.Messages.FortSearchMessage = Pogoprotos.Networking.Requests.Messages.FortSearchMessage()
      public func getMessage() -> Pogoprotos.Networking.Requests.Messages.FortSearchMessage {
          return builderResult
      }

      required override public init () {
         super.init()
      }
      public var hasFortId:Bool {
           get {
                return builderResult.hasFortId
           }
      }
      public var fortId:String {
           get {
                return builderResult.fortId
           }
           set (value) {
               builderResult.hasFortId = true
               builderResult.fortId = value
           }
      }
      public func setFortId(value:String) -> Pogoprotos.Networking.Requests.Messages.FortSearchMessage.Builder {
        self.fortId = value
        return self
      }
      public func clearFortId() -> Pogoprotos.Networking.Requests.Messages.FortSearchMessage.Builder{
           builderResult.hasFortId = false
           builderResult.fortId = ""
           return self
      }
      public var hasPlayerLatitude:Bool {
           get {
                return builderResult.hasPlayerLatitude
           }
      }
      public var playerLatitude:Double {
           get {
                return builderResult.playerLatitude
           }
           set (value) {
               builderResult.hasPlayerLatitude = true
               builderResult.playerLatitude = value
           }
      }
      public func setPlayerLatitude(value:Double) -> Pogoprotos.Networking.Requests.Messages.FortSearchMessage.Builder {
        self.playerLatitude = value
        return self
      }
      public func clearPlayerLatitude() -> Pogoprotos.Networking.Requests.Messages.FortSearchMessage.Builder{
           builderResult.hasPlayerLatitude = false
           builderResult.playerLatitude = Double(0)
           return self
      }
      public var hasPlayerLongitude:Bool {
           get {
                return builderResult.hasPlayerLongitude
           }
      }
      public var playerLongitude:Double {
           get {
                return builderResult.playerLongitude
           }
           set (value) {
               builderResult.hasPlayerLongitude = true
               builderResult.playerLongitude = value
           }
      }
      public func setPlayerLongitude(value:Double) -> Pogoprotos.Networking.Requests.Messages.FortSearchMessage.Builder {
        self.playerLongitude = value
        return self
      }
      public func clearPlayerLongitude() -> Pogoprotos.Networking.Requests.Messages.FortSearchMessage.Builder{
           builderResult.hasPlayerLongitude = false
           builderResult.playerLongitude = Double(0)
           return self
      }
      public var hasFortLatitude:Bool {
           get {
                return builderResult.hasFortLatitude
           }
      }
      public var fortLatitude:Double {
           get {
                return builderResult.fortLatitude
           }
           set (value) {
               builderResult.hasFortLatitude = true
               builderResult.fortLatitude = value
           }
      }
      public func setFortLatitude(value:Double) -> Pogoprotos.Networking.Requests.Messages.FortSearchMessage.Builder {
        self.fortLatitude = value
        return self
      }
      public func clearFortLatitude() -> Pogoprotos.Networking.Requests.Messages.FortSearchMessage.Builder{
           builderResult.hasFortLatitude = false
           builderResult.fortLatitude = Double(0)
           return self
      }
      public var hasFortLongitude:Bool {
           get {
                return builderResult.hasFortLongitude
           }
      }
      public var fortLongitude:Double {
           get {
                return builderResult.fortLongitude
           }
           set (value) {
               builderResult.hasFortLongitude = true
               builderResult.fortLongitude = value
           }
      }
      public func setFortLongitude(value:Double) -> Pogoprotos.Networking.Requests.Messages.FortSearchMessage.Builder {
        self.fortLongitude = value
        return self
      }
      public func clearFortLongitude() -> Pogoprotos.Networking.Requests.Messages.FortSearchMessage.Builder{
           builderResult.hasFortLongitude = false
           builderResult.fortLongitude = Double(0)
           return self
      }
      override public var internalGetResult:GeneratedMessage {
           get {
              return builderResult
           }
      }
      override public func clear() -> Pogoprotos.Networking.Requests.Messages.FortSearchMessage.Builder {
        builderResult = Pogoprotos.Networking.Requests.Messages.FortSearchMessage()
        return self
      }
      override public func clone() throws -> Pogoprotos.Networking.Requests.Messages.FortSearchMessage.Builder {
        return try Pogoprotos.Networking.Requests.Messages.FortSearchMessage.builderWithPrototype(builderResult)
      }
      override public func build() throws -> Pogoprotos.Networking.Requests.Messages.FortSearchMessage {
           try checkInitialized()
           return buildPartial()
      }
      public func buildPartial() -> Pogoprotos.Networking.Requests.Messages.FortSearchMessage {
        let returnMe:Pogoprotos.Networking.Requests.Messages.FortSearchMessage = builderResult
        return returnMe
      }
      public func mergeFrom(other:Pogoprotos.Networking.Requests.Messages.FortSearchMessage) throws -> Pogoprotos.Networking.Requests.Messages.FortSearchMessage.Builder {
        if other == Pogoprotos.Networking.Requests.Messages.FortSearchMessage() {
         return self
        }
        if other.hasFortId {
             fortId = other.fortId
        }
        if other.hasPlayerLatitude {
             playerLatitude = other.playerLatitude
        }
        if other.hasPlayerLongitude {
             playerLongitude = other.playerLongitude
        }
        if other.hasFortLatitude {
             fortLatitude = other.fortLatitude
        }
        if other.hasFortLongitude {
             fortLongitude = other.fortLongitude
        }
        try mergeUnknownFields(other.unknownFields)
        return self
      }
      override public func mergeFromCodedInputStream(input:CodedInputStream) throws -> Pogoprotos.Networking.Requests.Messages.FortSearchMessage.Builder {
           return try mergeFromCodedInputStream(input, extensionRegistry:ExtensionRegistry())
      }
      override public func mergeFromCodedInputStream(input:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.FortSearchMessage.Builder {
        let unknownFieldsBuilder:UnknownFieldSet.Builder = try UnknownFieldSet.builderWithUnknownFields(self.unknownFields)
        while (true) {
          let protobufTag = try input.readTag()
          switch protobufTag {
          case 0: 
            self.unknownFields = try unknownFieldsBuilder.build()
            return self

          case 10:
            fortId = try input.readString()

          case 17:
            playerLatitude = try input.readDouble()

          case 25:
            playerLongitude = try input.readDouble()

          case 33:
            fortLatitude = try input.readDouble()

          case 41:
            fortLongitude = try input.readDouble()

          default:
            if (!(try parseUnknownField(input,unknownFields:unknownFieldsBuilder, extensionRegistry:extensionRegistry, tag:protobufTag))) {
               unknownFields = try unknownFieldsBuilder.build()
               return self
            }
          }
        }
      }
      override class public func decodeToBuilder(jsonMap:Dictionary<String,AnyObject>) throws -> Pogoprotos.Networking.Requests.Messages.FortSearchMessage.Builder {
        let resultDecodedBuilder = Pogoprotos.Networking.Requests.Messages.FortSearchMessage.Builder()
        if let jsonValueFortId = jsonMap["fortId"] as? String {
          resultDecodedBuilder.fortId = jsonValueFortId
        }
        if let jsonValuePlayerLatitude = jsonMap["playerLatitude"] as? NSNumber {
          resultDecodedBuilder.playerLatitude = jsonValuePlayerLatitude.doubleValue
        }
        if let jsonValuePlayerLongitude = jsonMap["playerLongitude"] as? NSNumber {
          resultDecodedBuilder.playerLongitude = jsonValuePlayerLongitude.doubleValue
        }
        if let jsonValueFortLatitude = jsonMap["fortLatitude"] as? NSNumber {
          resultDecodedBuilder.fortLatitude = jsonValueFortLatitude.doubleValue
        }
        if let jsonValueFortLongitude = jsonMap["fortLongitude"] as? NSNumber {
          resultDecodedBuilder.fortLongitude = jsonValueFortLongitude.doubleValue
        }
        return resultDecodedBuilder
      }
      override class public func fromJSONToBuilder(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.FortSearchMessage.Builder {
        let jsonData = try NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions(rawValue: 0))
        guard let jsDataCast = jsonData as? Dictionary<String,AnyObject> else {
          throw ProtocolBuffersError.InvalidProtocolBuffer("Invalid JSON data")
        }
        return try Pogoprotos.Networking.Requests.Messages.FortSearchMessage.Builder.decodeToBuilder(jsDataCast)
      }
    }

  }

  final public class GetAssetDigestMessage : GeneratedMessage, GeneratedMessageProtocol {
    public private(set) var platform:Pogoprotos.Enums.Platform = Pogoprotos.Enums.Platform.Unset
    public private(set) var hasPlatform:Bool = false
    public private(set) var hasDeviceManufacturer:Bool = false
    public private(set) var deviceManufacturer:String = ""

    public private(set) var hasDeviceModel:Bool = false
    public private(set) var deviceModel:String = ""

    public private(set) var hasLocale:Bool = false
    public private(set) var locale:String = ""

    public private(set) var hasAppVersion:Bool = false
    public private(set) var appVersion:UInt32 = UInt32(0)

    required public init() {
         super.init()
    }
    override public func isInitialized() -> Bool {
     return true
    }
    override public func writeToCodedOutputStream(output:CodedOutputStream) throws {
      if hasPlatform {
        try output.writeEnum(1, value:platform.rawValue)
      }
      if hasDeviceManufacturer {
        try output.writeString(2, value:deviceManufacturer)
      }
      if hasDeviceModel {
        try output.writeString(3, value:deviceModel)
      }
      if hasLocale {
        try output.writeString(4, value:locale)
      }
      if hasAppVersion {
        try output.writeUInt32(5, value:appVersion)
      }
      try unknownFields.writeToCodedOutputStream(output)
    }
    override public func serializedSize() -> Int32 {
      var serialize_size:Int32 = memoizedSerializedSize
      if serialize_size != -1 {
       return serialize_size
      }

      serialize_size = 0
      if (hasPlatform) {
        serialize_size += platform.rawValue.computeEnumSize(1)
      }
      if hasDeviceManufacturer {
        serialize_size += deviceManufacturer.computeStringSize(2)
      }
      if hasDeviceModel {
        serialize_size += deviceModel.computeStringSize(3)
      }
      if hasLocale {
        serialize_size += locale.computeStringSize(4)
      }
      if hasAppVersion {
        serialize_size += appVersion.computeUInt32Size(5)
      }
      serialize_size += unknownFields.serializedSize()
      memoizedSerializedSize = serialize_size
      return serialize_size
    }
    public class func parseArrayDelimitedFromInputStream(input:NSInputStream) throws -> Array<Pogoprotos.Networking.Requests.Messages.GetAssetDigestMessage> {
      var mergedArray = Array<Pogoprotos.Networking.Requests.Messages.GetAssetDigestMessage>()
      while let value = try parseFromDelimitedFromInputStream(input) {
        mergedArray += [value]
      }
      return mergedArray
    }
    public class func parseFromDelimitedFromInputStream(input:NSInputStream) throws -> Pogoprotos.Networking.Requests.Messages.GetAssetDigestMessage? {
      return try Pogoprotos.Networking.Requests.Messages.GetAssetDigestMessage.Builder().mergeDelimitedFromInputStream(input)?.build()
    }
    public class func parseFromData(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.GetAssetDigestMessage {
      return try Pogoprotos.Networking.Requests.Messages.GetAssetDigestMessage.Builder().mergeFromData(data, extensionRegistry:Pogoprotos.Networking.Requests.Messages.PogoprotosNetworkingRequestsMessagesRoot.sharedInstance.extensionRegistry).build()
    }
    public class func parseFromData(data:NSData, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.GetAssetDigestMessage {
      return try Pogoprotos.Networking.Requests.Messages.GetAssetDigestMessage.Builder().mergeFromData(data, extensionRegistry:extensionRegistry).build()
    }
    public class func parseFromInputStream(input:NSInputStream) throws -> Pogoprotos.Networking.Requests.Messages.GetAssetDigestMessage {
      return try Pogoprotos.Networking.Requests.Messages.GetAssetDigestMessage.Builder().mergeFromInputStream(input).build()
    }
    public class func parseFromInputStream(input:NSInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.GetAssetDigestMessage {
      return try Pogoprotos.Networking.Requests.Messages.GetAssetDigestMessage.Builder().mergeFromInputStream(input, extensionRegistry:extensionRegistry).build()
    }
    public class func parseFromCodedInputStream(input:CodedInputStream) throws -> Pogoprotos.Networking.Requests.Messages.GetAssetDigestMessage {
      return try Pogoprotos.Networking.Requests.Messages.GetAssetDigestMessage.Builder().mergeFromCodedInputStream(input).build()
    }
    public class func parseFromCodedInputStream(input:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.GetAssetDigestMessage {
      return try Pogoprotos.Networking.Requests.Messages.GetAssetDigestMessage.Builder().mergeFromCodedInputStream(input, extensionRegistry:extensionRegistry).build()
    }
    public class func getBuilder() -> Pogoprotos.Networking.Requests.Messages.GetAssetDigestMessage.Builder {
      return Pogoprotos.Networking.Requests.Messages.GetAssetDigestMessage.classBuilder() as! Pogoprotos.Networking.Requests.Messages.GetAssetDigestMessage.Builder
    }
    public func getBuilder() -> Pogoprotos.Networking.Requests.Messages.GetAssetDigestMessage.Builder {
      return classBuilder() as! Pogoprotos.Networking.Requests.Messages.GetAssetDigestMessage.Builder
    }
    override public class func classBuilder() -> MessageBuilder {
      return Pogoprotos.Networking.Requests.Messages.GetAssetDigestMessage.Builder()
    }
    override public func classBuilder() -> MessageBuilder {
      return Pogoprotos.Networking.Requests.Messages.GetAssetDigestMessage.Builder()
    }
    public func toBuilder() throws -> Pogoprotos.Networking.Requests.Messages.GetAssetDigestMessage.Builder {
      return try Pogoprotos.Networking.Requests.Messages.GetAssetDigestMessage.builderWithPrototype(self)
    }
    public class func builderWithPrototype(prototype:Pogoprotos.Networking.Requests.Messages.GetAssetDigestMessage) throws -> Pogoprotos.Networking.Requests.Messages.GetAssetDigestMessage.Builder {
      return try Pogoprotos.Networking.Requests.Messages.GetAssetDigestMessage.Builder().mergeFrom(prototype)
    }
    override public func encode() throws -> Dictionary<String,AnyObject> {
      guard isInitialized() else {
        throw ProtocolBuffersError.InvalidProtocolBuffer("Uninitialized Message")
      }

      var jsonMap:Dictionary<String,AnyObject> = Dictionary<String,AnyObject>()
      if hasPlatform {
        jsonMap["platform"] = platform.toString()
      }
      if hasDeviceManufacturer {
        jsonMap["deviceManufacturer"] = deviceManufacturer
      }
      if hasDeviceModel {
        jsonMap["deviceModel"] = deviceModel
      }
      if hasLocale {
        jsonMap["locale"] = locale
      }
      if hasAppVersion {
        jsonMap["appVersion"] = NSNumber(unsignedInt:appVersion)
      }
      return jsonMap
    }
    override class public func decode(jsonMap:Dictionary<String,AnyObject>) throws -> Pogoprotos.Networking.Requests.Messages.GetAssetDigestMessage {
      return try Pogoprotos.Networking.Requests.Messages.GetAssetDigestMessage.Builder.decodeToBuilder(jsonMap).build()
    }
    override class public func fromJSON(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.GetAssetDigestMessage {
      return try Pogoprotos.Networking.Requests.Messages.GetAssetDigestMessage.Builder.fromJSONToBuilder(data).build()
    }
    override public func getDescription(indent:String) throws -> String {
      var output = ""
      if (hasPlatform) {
        output += "\(indent) platform: \(platform.description)\n"
      }
      if hasDeviceManufacturer {
        output += "\(indent) deviceManufacturer: \(deviceManufacturer) \n"
      }
      if hasDeviceModel {
        output += "\(indent) deviceModel: \(deviceModel) \n"
      }
      if hasLocale {
        output += "\(indent) locale: \(locale) \n"
      }
      if hasAppVersion {
        output += "\(indent) appVersion: \(appVersion) \n"
      }
      output += unknownFields.getDescription(indent)
      return output
    }
    override public var hashValue:Int {
        get {
            var hashCode:Int = 7
            if hasPlatform {
               hashCode = (hashCode &* 31) &+ Int(platform.rawValue)
            }
            if hasDeviceManufacturer {
               hashCode = (hashCode &* 31) &+ deviceManufacturer.hashValue
            }
            if hasDeviceModel {
               hashCode = (hashCode &* 31) &+ deviceModel.hashValue
            }
            if hasLocale {
               hashCode = (hashCode &* 31) &+ locale.hashValue
            }
            if hasAppVersion {
               hashCode = (hashCode &* 31) &+ appVersion.hashValue
            }
            hashCode = (hashCode &* 31) &+  unknownFields.hashValue
            return hashCode
        }
    }


    //Meta information declaration start

    override public class func className() -> String {
        return "Pogoprotos.Networking.Requests.Messages.GetAssetDigestMessage"
    }
    override public func className() -> String {
        return "Pogoprotos.Networking.Requests.Messages.GetAssetDigestMessage"
    }
    override public func classMetaType() -> GeneratedMessage.Type {
        return Pogoprotos.Networking.Requests.Messages.GetAssetDigestMessage.self
    }
    //Meta information declaration end

    final public class Builder : GeneratedMessageBuilder {
      private var builderResult:Pogoprotos.Networking.Requests.Messages.GetAssetDigestMessage = Pogoprotos.Networking.Requests.Messages.GetAssetDigestMessage()
      public func getMessage() -> Pogoprotos.Networking.Requests.Messages.GetAssetDigestMessage {
          return builderResult
      }

      required override public init () {
         super.init()
      }
        public var hasPlatform:Bool{
            get {
                return builderResult.hasPlatform
            }
        }
        public var platform:Pogoprotos.Enums.Platform {
            get {
                return builderResult.platform
            }
            set (value) {
                builderResult.hasPlatform = true
                builderResult.platform = value
            }
        }
        public func setPlatform(value:Pogoprotos.Enums.Platform) -> Pogoprotos.Networking.Requests.Messages.GetAssetDigestMessage.Builder {
          self.platform = value
          return self
        }
        public func clearPlatform() -> Pogoprotos.Networking.Requests.Messages.GetAssetDigestMessage.Builder {
           builderResult.hasPlatform = false
           builderResult.platform = .Unset
           return self
        }
      public var hasDeviceManufacturer:Bool {
           get {
                return builderResult.hasDeviceManufacturer
           }
      }
      public var deviceManufacturer:String {
           get {
                return builderResult.deviceManufacturer
           }
           set (value) {
               builderResult.hasDeviceManufacturer = true
               builderResult.deviceManufacturer = value
           }
      }
      public func setDeviceManufacturer(value:String) -> Pogoprotos.Networking.Requests.Messages.GetAssetDigestMessage.Builder {
        self.deviceManufacturer = value
        return self
      }
      public func clearDeviceManufacturer() -> Pogoprotos.Networking.Requests.Messages.GetAssetDigestMessage.Builder{
           builderResult.hasDeviceManufacturer = false
           builderResult.deviceManufacturer = ""
           return self
      }
      public var hasDeviceModel:Bool {
           get {
                return builderResult.hasDeviceModel
           }
      }
      public var deviceModel:String {
           get {
                return builderResult.deviceModel
           }
           set (value) {
               builderResult.hasDeviceModel = true
               builderResult.deviceModel = value
           }
      }
      public func setDeviceModel(value:String) -> Pogoprotos.Networking.Requests.Messages.GetAssetDigestMessage.Builder {
        self.deviceModel = value
        return self
      }
      public func clearDeviceModel() -> Pogoprotos.Networking.Requests.Messages.GetAssetDigestMessage.Builder{
           builderResult.hasDeviceModel = false
           builderResult.deviceModel = ""
           return self
      }
      public var hasLocale:Bool {
           get {
                return builderResult.hasLocale
           }
      }
      public var locale:String {
           get {
                return builderResult.locale
           }
           set (value) {
               builderResult.hasLocale = true
               builderResult.locale = value
           }
      }
      public func setLocale(value:String) -> Pogoprotos.Networking.Requests.Messages.GetAssetDigestMessage.Builder {
        self.locale = value
        return self
      }
      public func clearLocale() -> Pogoprotos.Networking.Requests.Messages.GetAssetDigestMessage.Builder{
           builderResult.hasLocale = false
           builderResult.locale = ""
           return self
      }
      public var hasAppVersion:Bool {
           get {
                return builderResult.hasAppVersion
           }
      }
      public var appVersion:UInt32 {
           get {
                return builderResult.appVersion
           }
           set (value) {
               builderResult.hasAppVersion = true
               builderResult.appVersion = value
           }
      }
      public func setAppVersion(value:UInt32) -> Pogoprotos.Networking.Requests.Messages.GetAssetDigestMessage.Builder {
        self.appVersion = value
        return self
      }
      public func clearAppVersion() -> Pogoprotos.Networking.Requests.Messages.GetAssetDigestMessage.Builder{
           builderResult.hasAppVersion = false
           builderResult.appVersion = UInt32(0)
           return self
      }
      override public var internalGetResult:GeneratedMessage {
           get {
              return builderResult
           }
      }
      override public func clear() -> Pogoprotos.Networking.Requests.Messages.GetAssetDigestMessage.Builder {
        builderResult = Pogoprotos.Networking.Requests.Messages.GetAssetDigestMessage()
        return self
      }
      override public func clone() throws -> Pogoprotos.Networking.Requests.Messages.GetAssetDigestMessage.Builder {
        return try Pogoprotos.Networking.Requests.Messages.GetAssetDigestMessage.builderWithPrototype(builderResult)
      }
      override public func build() throws -> Pogoprotos.Networking.Requests.Messages.GetAssetDigestMessage {
           try checkInitialized()
           return buildPartial()
      }
      public func buildPartial() -> Pogoprotos.Networking.Requests.Messages.GetAssetDigestMessage {
        let returnMe:Pogoprotos.Networking.Requests.Messages.GetAssetDigestMessage = builderResult
        return returnMe
      }
      public func mergeFrom(other:Pogoprotos.Networking.Requests.Messages.GetAssetDigestMessage) throws -> Pogoprotos.Networking.Requests.Messages.GetAssetDigestMessage.Builder {
        if other == Pogoprotos.Networking.Requests.Messages.GetAssetDigestMessage() {
         return self
        }
        if other.hasPlatform {
             platform = other.platform
        }
        if other.hasDeviceManufacturer {
             deviceManufacturer = other.deviceManufacturer
        }
        if other.hasDeviceModel {
             deviceModel = other.deviceModel
        }
        if other.hasLocale {
             locale = other.locale
        }
        if other.hasAppVersion {
             appVersion = other.appVersion
        }
        try mergeUnknownFields(other.unknownFields)
        return self
      }
      override public func mergeFromCodedInputStream(input:CodedInputStream) throws -> Pogoprotos.Networking.Requests.Messages.GetAssetDigestMessage.Builder {
           return try mergeFromCodedInputStream(input, extensionRegistry:ExtensionRegistry())
      }
      override public func mergeFromCodedInputStream(input:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.GetAssetDigestMessage.Builder {
        let unknownFieldsBuilder:UnknownFieldSet.Builder = try UnknownFieldSet.builderWithUnknownFields(self.unknownFields)
        while (true) {
          let protobufTag = try input.readTag()
          switch protobufTag {
          case 0: 
            self.unknownFields = try unknownFieldsBuilder.build()
            return self

          case 8:
            let valueIntplatform = try input.readEnum()
            if let enumsplatform = Pogoprotos.Enums.Platform(rawValue:valueIntplatform){
                 platform = enumsplatform
            } else {
                 try unknownFieldsBuilder.mergeVarintField(1, value:Int64(valueIntplatform))
            }

          case 18:
            deviceManufacturer = try input.readString()

          case 26:
            deviceModel = try input.readString()

          case 34:
            locale = try input.readString()

          case 40:
            appVersion = try input.readUInt32()

          default:
            if (!(try parseUnknownField(input,unknownFields:unknownFieldsBuilder, extensionRegistry:extensionRegistry, tag:protobufTag))) {
               unknownFields = try unknownFieldsBuilder.build()
               return self
            }
          }
        }
      }
      override class public func decodeToBuilder(jsonMap:Dictionary<String,AnyObject>) throws -> Pogoprotos.Networking.Requests.Messages.GetAssetDigestMessage.Builder {
        let resultDecodedBuilder = Pogoprotos.Networking.Requests.Messages.GetAssetDigestMessage.Builder()
        if let jsonValuePlatform = jsonMap["platform"] as? String {
          resultDecodedBuilder.platform = try Pogoprotos.Enums.Platform.fromString(jsonValuePlatform)
        }
        if let jsonValueDeviceManufacturer = jsonMap["deviceManufacturer"] as? String {
          resultDecodedBuilder.deviceManufacturer = jsonValueDeviceManufacturer
        }
        if let jsonValueDeviceModel = jsonMap["deviceModel"] as? String {
          resultDecodedBuilder.deviceModel = jsonValueDeviceModel
        }
        if let jsonValueLocale = jsonMap["locale"] as? String {
          resultDecodedBuilder.locale = jsonValueLocale
        }
        if let jsonValueAppVersion = jsonMap["appVersion"] as? NSNumber {
          resultDecodedBuilder.appVersion = jsonValueAppVersion.unsignedIntValue
        }
        return resultDecodedBuilder
      }
      override class public func fromJSONToBuilder(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.GetAssetDigestMessage.Builder {
        let jsonData = try NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions(rawValue: 0))
        guard let jsDataCast = jsonData as? Dictionary<String,AnyObject> else {
          throw ProtocolBuffersError.InvalidProtocolBuffer("Invalid JSON data")
        }
        return try Pogoprotos.Networking.Requests.Messages.GetAssetDigestMessage.Builder.decodeToBuilder(jsDataCast)
      }
    }

  }

  final public class GetDownloadUrlsMessage : GeneratedMessage, GeneratedMessageProtocol {
    public private(set) var assetId:Array<String> = Array<String>()
    required public init() {
         super.init()
    }
    override public func isInitialized() -> Bool {
     return true
    }
    override public func writeToCodedOutputStream(output:CodedOutputStream) throws {
      if !assetId.isEmpty {
        for oneValueassetId in assetId {
          try output.writeString(1, value:oneValueassetId)
        }
      }
      try unknownFields.writeToCodedOutputStream(output)
    }
    override public func serializedSize() -> Int32 {
      var serialize_size:Int32 = memoizedSerializedSize
      if serialize_size != -1 {
       return serialize_size
      }

      serialize_size = 0
      var dataSizeAssetId:Int32 = 0
      for oneValueassetId in assetId {
          dataSizeAssetId += oneValueassetId.computeStringSizeNoTag()
      }
      serialize_size += dataSizeAssetId
      serialize_size += 1 * Int32(assetId.count)
      serialize_size += unknownFields.serializedSize()
      memoizedSerializedSize = serialize_size
      return serialize_size
    }
    public class func parseArrayDelimitedFromInputStream(input:NSInputStream) throws -> Array<Pogoprotos.Networking.Requests.Messages.GetDownloadUrlsMessage> {
      var mergedArray = Array<Pogoprotos.Networking.Requests.Messages.GetDownloadUrlsMessage>()
      while let value = try parseFromDelimitedFromInputStream(input) {
        mergedArray += [value]
      }
      return mergedArray
    }
    public class func parseFromDelimitedFromInputStream(input:NSInputStream) throws -> Pogoprotos.Networking.Requests.Messages.GetDownloadUrlsMessage? {
      return try Pogoprotos.Networking.Requests.Messages.GetDownloadUrlsMessage.Builder().mergeDelimitedFromInputStream(input)?.build()
    }
    public class func parseFromData(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.GetDownloadUrlsMessage {
      return try Pogoprotos.Networking.Requests.Messages.GetDownloadUrlsMessage.Builder().mergeFromData(data, extensionRegistry:Pogoprotos.Networking.Requests.Messages.PogoprotosNetworkingRequestsMessagesRoot.sharedInstance.extensionRegistry).build()
    }
    public class func parseFromData(data:NSData, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.GetDownloadUrlsMessage {
      return try Pogoprotos.Networking.Requests.Messages.GetDownloadUrlsMessage.Builder().mergeFromData(data, extensionRegistry:extensionRegistry).build()
    }
    public class func parseFromInputStream(input:NSInputStream) throws -> Pogoprotos.Networking.Requests.Messages.GetDownloadUrlsMessage {
      return try Pogoprotos.Networking.Requests.Messages.GetDownloadUrlsMessage.Builder().mergeFromInputStream(input).build()
    }
    public class func parseFromInputStream(input:NSInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.GetDownloadUrlsMessage {
      return try Pogoprotos.Networking.Requests.Messages.GetDownloadUrlsMessage.Builder().mergeFromInputStream(input, extensionRegistry:extensionRegistry).build()
    }
    public class func parseFromCodedInputStream(input:CodedInputStream) throws -> Pogoprotos.Networking.Requests.Messages.GetDownloadUrlsMessage {
      return try Pogoprotos.Networking.Requests.Messages.GetDownloadUrlsMessage.Builder().mergeFromCodedInputStream(input).build()
    }
    public class func parseFromCodedInputStream(input:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.GetDownloadUrlsMessage {
      return try Pogoprotos.Networking.Requests.Messages.GetDownloadUrlsMessage.Builder().mergeFromCodedInputStream(input, extensionRegistry:extensionRegistry).build()
    }
    public class func getBuilder() -> Pogoprotos.Networking.Requests.Messages.GetDownloadUrlsMessage.Builder {
      return Pogoprotos.Networking.Requests.Messages.GetDownloadUrlsMessage.classBuilder() as! Pogoprotos.Networking.Requests.Messages.GetDownloadUrlsMessage.Builder
    }
    public func getBuilder() -> Pogoprotos.Networking.Requests.Messages.GetDownloadUrlsMessage.Builder {
      return classBuilder() as! Pogoprotos.Networking.Requests.Messages.GetDownloadUrlsMessage.Builder
    }
    override public class func classBuilder() -> MessageBuilder {
      return Pogoprotos.Networking.Requests.Messages.GetDownloadUrlsMessage.Builder()
    }
    override public func classBuilder() -> MessageBuilder {
      return Pogoprotos.Networking.Requests.Messages.GetDownloadUrlsMessage.Builder()
    }
    public func toBuilder() throws -> Pogoprotos.Networking.Requests.Messages.GetDownloadUrlsMessage.Builder {
      return try Pogoprotos.Networking.Requests.Messages.GetDownloadUrlsMessage.builderWithPrototype(self)
    }
    public class func builderWithPrototype(prototype:Pogoprotos.Networking.Requests.Messages.GetDownloadUrlsMessage) throws -> Pogoprotos.Networking.Requests.Messages.GetDownloadUrlsMessage.Builder {
      return try Pogoprotos.Networking.Requests.Messages.GetDownloadUrlsMessage.Builder().mergeFrom(prototype)
    }
    override public func encode() throws -> Dictionary<String,AnyObject> {
      guard isInitialized() else {
        throw ProtocolBuffersError.InvalidProtocolBuffer("Uninitialized Message")
      }

      var jsonMap:Dictionary<String,AnyObject> = Dictionary<String,AnyObject>()
      if !assetId.isEmpty {
        jsonMap["assetId"] = assetId
      }
      return jsonMap
    }
    override class public func decode(jsonMap:Dictionary<String,AnyObject>) throws -> Pogoprotos.Networking.Requests.Messages.GetDownloadUrlsMessage {
      return try Pogoprotos.Networking.Requests.Messages.GetDownloadUrlsMessage.Builder.decodeToBuilder(jsonMap).build()
    }
    override class public func fromJSON(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.GetDownloadUrlsMessage {
      return try Pogoprotos.Networking.Requests.Messages.GetDownloadUrlsMessage.Builder.fromJSONToBuilder(data).build()
    }
    override public func getDescription(indent:String) throws -> String {
      var output = ""
      var assetIdElementIndex:Int = 0
      for oneValueAssetId in assetId  {
          output += "\(indent) assetId[\(assetIdElementIndex)]: \(oneValueAssetId)\n"
          assetIdElementIndex += 1
      }
      output += unknownFields.getDescription(indent)
      return output
    }
    override public var hashValue:Int {
        get {
            var hashCode:Int = 7
            for oneValueAssetId in assetId {
                hashCode = (hashCode &* 31) &+ oneValueAssetId.hashValue
            }
            hashCode = (hashCode &* 31) &+  unknownFields.hashValue
            return hashCode
        }
    }


    //Meta information declaration start

    override public class func className() -> String {
        return "Pogoprotos.Networking.Requests.Messages.GetDownloadUrlsMessage"
    }
    override public func className() -> String {
        return "Pogoprotos.Networking.Requests.Messages.GetDownloadUrlsMessage"
    }
    override public func classMetaType() -> GeneratedMessage.Type {
        return Pogoprotos.Networking.Requests.Messages.GetDownloadUrlsMessage.self
    }
    //Meta information declaration end

    final public class Builder : GeneratedMessageBuilder {
      private var builderResult:Pogoprotos.Networking.Requests.Messages.GetDownloadUrlsMessage = Pogoprotos.Networking.Requests.Messages.GetDownloadUrlsMessage()
      public func getMessage() -> Pogoprotos.Networking.Requests.Messages.GetDownloadUrlsMessage {
          return builderResult
      }

      required override public init () {
         super.init()
      }
      public var assetId:Array<String> {
           get {
               return builderResult.assetId
           }
           set (array) {
               builderResult.assetId = array
           }
      }
      public func setAssetId(value:Array<String>) -> Pogoprotos.Networking.Requests.Messages.GetDownloadUrlsMessage.Builder {
        self.assetId = value
        return self
      }
      public func clearAssetId() -> Pogoprotos.Networking.Requests.Messages.GetDownloadUrlsMessage.Builder {
         builderResult.assetId.removeAll(keepCapacity: false)
         return self
      }
      override public var internalGetResult:GeneratedMessage {
           get {
              return builderResult
           }
      }
      override public func clear() -> Pogoprotos.Networking.Requests.Messages.GetDownloadUrlsMessage.Builder {
        builderResult = Pogoprotos.Networking.Requests.Messages.GetDownloadUrlsMessage()
        return self
      }
      override public func clone() throws -> Pogoprotos.Networking.Requests.Messages.GetDownloadUrlsMessage.Builder {
        return try Pogoprotos.Networking.Requests.Messages.GetDownloadUrlsMessage.builderWithPrototype(builderResult)
      }
      override public func build() throws -> Pogoprotos.Networking.Requests.Messages.GetDownloadUrlsMessage {
           try checkInitialized()
           return buildPartial()
      }
      public func buildPartial() -> Pogoprotos.Networking.Requests.Messages.GetDownloadUrlsMessage {
        let returnMe:Pogoprotos.Networking.Requests.Messages.GetDownloadUrlsMessage = builderResult
        return returnMe
      }
      public func mergeFrom(other:Pogoprotos.Networking.Requests.Messages.GetDownloadUrlsMessage) throws -> Pogoprotos.Networking.Requests.Messages.GetDownloadUrlsMessage.Builder {
        if other == Pogoprotos.Networking.Requests.Messages.GetDownloadUrlsMessage() {
         return self
        }
        if !other.assetId.isEmpty {
            builderResult.assetId += other.assetId
        }
        try mergeUnknownFields(other.unknownFields)
        return self
      }
      override public func mergeFromCodedInputStream(input:CodedInputStream) throws -> Pogoprotos.Networking.Requests.Messages.GetDownloadUrlsMessage.Builder {
           return try mergeFromCodedInputStream(input, extensionRegistry:ExtensionRegistry())
      }
      override public func mergeFromCodedInputStream(input:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.GetDownloadUrlsMessage.Builder {
        let unknownFieldsBuilder:UnknownFieldSet.Builder = try UnknownFieldSet.builderWithUnknownFields(self.unknownFields)
        while (true) {
          let protobufTag = try input.readTag()
          switch protobufTag {
          case 0: 
            self.unknownFields = try unknownFieldsBuilder.build()
            return self

          case 10:
            assetId += [try input.readString()]

          default:
            if (!(try parseUnknownField(input,unknownFields:unknownFieldsBuilder, extensionRegistry:extensionRegistry, tag:protobufTag))) {
               unknownFields = try unknownFieldsBuilder.build()
               return self
            }
          }
        }
      }
      override class public func decodeToBuilder(jsonMap:Dictionary<String,AnyObject>) throws -> Pogoprotos.Networking.Requests.Messages.GetDownloadUrlsMessage.Builder {
        let resultDecodedBuilder = Pogoprotos.Networking.Requests.Messages.GetDownloadUrlsMessage.Builder()
        if let jsonValueAssetId = jsonMap["assetId"] as? Array<String> {
          resultDecodedBuilder.assetId = jsonValueAssetId
        }
        return resultDecodedBuilder
      }
      override class public func fromJSONToBuilder(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.GetDownloadUrlsMessage.Builder {
        let jsonData = try NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions(rawValue: 0))
        guard let jsDataCast = jsonData as? Dictionary<String,AnyObject> else {
          throw ProtocolBuffersError.InvalidProtocolBuffer("Invalid JSON data")
        }
        return try Pogoprotos.Networking.Requests.Messages.GetDownloadUrlsMessage.Builder.decodeToBuilder(jsDataCast)
      }
    }

  }

  final public class GetGymDetailsMessage : GeneratedMessage, GeneratedMessageProtocol {
    public private(set) var hasGymId:Bool = false
    public private(set) var gymId:String = ""

    public private(set) var hasPlayerLatitude:Bool = false
    public private(set) var playerLatitude:Double = Double(0)

    public private(set) var hasPlayerLongitude:Bool = false
    public private(set) var playerLongitude:Double = Double(0)

    public private(set) var hasGymLatitude:Bool = false
    public private(set) var gymLatitude:Double = Double(0)

    public private(set) var hasGymLongitude:Bool = false
    public private(set) var gymLongitude:Double = Double(0)

    required public init() {
         super.init()
    }
    override public func isInitialized() -> Bool {
     return true
    }
    override public func writeToCodedOutputStream(output:CodedOutputStream) throws {
      if hasGymId {
        try output.writeString(1, value:gymId)
      }
      if hasPlayerLatitude {
        try output.writeDouble(2, value:playerLatitude)
      }
      if hasPlayerLongitude {
        try output.writeDouble(3, value:playerLongitude)
      }
      if hasGymLatitude {
        try output.writeDouble(4, value:gymLatitude)
      }
      if hasGymLongitude {
        try output.writeDouble(5, value:gymLongitude)
      }
      try unknownFields.writeToCodedOutputStream(output)
    }
    override public func serializedSize() -> Int32 {
      var serialize_size:Int32 = memoizedSerializedSize
      if serialize_size != -1 {
       return serialize_size
      }

      serialize_size = 0
      if hasGymId {
        serialize_size += gymId.computeStringSize(1)
      }
      if hasPlayerLatitude {
        serialize_size += playerLatitude.computeDoubleSize(2)
      }
      if hasPlayerLongitude {
        serialize_size += playerLongitude.computeDoubleSize(3)
      }
      if hasGymLatitude {
        serialize_size += gymLatitude.computeDoubleSize(4)
      }
      if hasGymLongitude {
        serialize_size += gymLongitude.computeDoubleSize(5)
      }
      serialize_size += unknownFields.serializedSize()
      memoizedSerializedSize = serialize_size
      return serialize_size
    }
    public class func parseArrayDelimitedFromInputStream(input:NSInputStream) throws -> Array<Pogoprotos.Networking.Requests.Messages.GetGymDetailsMessage> {
      var mergedArray = Array<Pogoprotos.Networking.Requests.Messages.GetGymDetailsMessage>()
      while let value = try parseFromDelimitedFromInputStream(input) {
        mergedArray += [value]
      }
      return mergedArray
    }
    public class func parseFromDelimitedFromInputStream(input:NSInputStream) throws -> Pogoprotos.Networking.Requests.Messages.GetGymDetailsMessage? {
      return try Pogoprotos.Networking.Requests.Messages.GetGymDetailsMessage.Builder().mergeDelimitedFromInputStream(input)?.build()
    }
    public class func parseFromData(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.GetGymDetailsMessage {
      return try Pogoprotos.Networking.Requests.Messages.GetGymDetailsMessage.Builder().mergeFromData(data, extensionRegistry:Pogoprotos.Networking.Requests.Messages.PogoprotosNetworkingRequestsMessagesRoot.sharedInstance.extensionRegistry).build()
    }
    public class func parseFromData(data:NSData, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.GetGymDetailsMessage {
      return try Pogoprotos.Networking.Requests.Messages.GetGymDetailsMessage.Builder().mergeFromData(data, extensionRegistry:extensionRegistry).build()
    }
    public class func parseFromInputStream(input:NSInputStream) throws -> Pogoprotos.Networking.Requests.Messages.GetGymDetailsMessage {
      return try Pogoprotos.Networking.Requests.Messages.GetGymDetailsMessage.Builder().mergeFromInputStream(input).build()
    }
    public class func parseFromInputStream(input:NSInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.GetGymDetailsMessage {
      return try Pogoprotos.Networking.Requests.Messages.GetGymDetailsMessage.Builder().mergeFromInputStream(input, extensionRegistry:extensionRegistry).build()
    }
    public class func parseFromCodedInputStream(input:CodedInputStream) throws -> Pogoprotos.Networking.Requests.Messages.GetGymDetailsMessage {
      return try Pogoprotos.Networking.Requests.Messages.GetGymDetailsMessage.Builder().mergeFromCodedInputStream(input).build()
    }
    public class func parseFromCodedInputStream(input:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.GetGymDetailsMessage {
      return try Pogoprotos.Networking.Requests.Messages.GetGymDetailsMessage.Builder().mergeFromCodedInputStream(input, extensionRegistry:extensionRegistry).build()
    }
    public class func getBuilder() -> Pogoprotos.Networking.Requests.Messages.GetGymDetailsMessage.Builder {
      return Pogoprotos.Networking.Requests.Messages.GetGymDetailsMessage.classBuilder() as! Pogoprotos.Networking.Requests.Messages.GetGymDetailsMessage.Builder
    }
    public func getBuilder() -> Pogoprotos.Networking.Requests.Messages.GetGymDetailsMessage.Builder {
      return classBuilder() as! Pogoprotos.Networking.Requests.Messages.GetGymDetailsMessage.Builder
    }
    override public class func classBuilder() -> MessageBuilder {
      return Pogoprotos.Networking.Requests.Messages.GetGymDetailsMessage.Builder()
    }
    override public func classBuilder() -> MessageBuilder {
      return Pogoprotos.Networking.Requests.Messages.GetGymDetailsMessage.Builder()
    }
    public func toBuilder() throws -> Pogoprotos.Networking.Requests.Messages.GetGymDetailsMessage.Builder {
      return try Pogoprotos.Networking.Requests.Messages.GetGymDetailsMessage.builderWithPrototype(self)
    }
    public class func builderWithPrototype(prototype:Pogoprotos.Networking.Requests.Messages.GetGymDetailsMessage) throws -> Pogoprotos.Networking.Requests.Messages.GetGymDetailsMessage.Builder {
      return try Pogoprotos.Networking.Requests.Messages.GetGymDetailsMessage.Builder().mergeFrom(prototype)
    }
    override public func encode() throws -> Dictionary<String,AnyObject> {
      guard isInitialized() else {
        throw ProtocolBuffersError.InvalidProtocolBuffer("Uninitialized Message")
      }

      var jsonMap:Dictionary<String,AnyObject> = Dictionary<String,AnyObject>()
      if hasGymId {
        jsonMap["gymId"] = gymId
      }
      if hasPlayerLatitude {
        jsonMap["playerLatitude"] = NSNumber(double:playerLatitude)
      }
      if hasPlayerLongitude {
        jsonMap["playerLongitude"] = NSNumber(double:playerLongitude)
      }
      if hasGymLatitude {
        jsonMap["gymLatitude"] = NSNumber(double:gymLatitude)
      }
      if hasGymLongitude {
        jsonMap["gymLongitude"] = NSNumber(double:gymLongitude)
      }
      return jsonMap
    }
    override class public func decode(jsonMap:Dictionary<String,AnyObject>) throws -> Pogoprotos.Networking.Requests.Messages.GetGymDetailsMessage {
      return try Pogoprotos.Networking.Requests.Messages.GetGymDetailsMessage.Builder.decodeToBuilder(jsonMap).build()
    }
    override class public func fromJSON(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.GetGymDetailsMessage {
      return try Pogoprotos.Networking.Requests.Messages.GetGymDetailsMessage.Builder.fromJSONToBuilder(data).build()
    }
    override public func getDescription(indent:String) throws -> String {
      var output = ""
      if hasGymId {
        output += "\(indent) gymId: \(gymId) \n"
      }
      if hasPlayerLatitude {
        output += "\(indent) playerLatitude: \(playerLatitude) \n"
      }
      if hasPlayerLongitude {
        output += "\(indent) playerLongitude: \(playerLongitude) \n"
      }
      if hasGymLatitude {
        output += "\(indent) gymLatitude: \(gymLatitude) \n"
      }
      if hasGymLongitude {
        output += "\(indent) gymLongitude: \(gymLongitude) \n"
      }
      output += unknownFields.getDescription(indent)
      return output
    }
    override public var hashValue:Int {
        get {
            var hashCode:Int = 7
            if hasGymId {
               hashCode = (hashCode &* 31) &+ gymId.hashValue
            }
            if hasPlayerLatitude {
               hashCode = (hashCode &* 31) &+ playerLatitude.hashValue
            }
            if hasPlayerLongitude {
               hashCode = (hashCode &* 31) &+ playerLongitude.hashValue
            }
            if hasGymLatitude {
               hashCode = (hashCode &* 31) &+ gymLatitude.hashValue
            }
            if hasGymLongitude {
               hashCode = (hashCode &* 31) &+ gymLongitude.hashValue
            }
            hashCode = (hashCode &* 31) &+  unknownFields.hashValue
            return hashCode
        }
    }


    //Meta information declaration start

    override public class func className() -> String {
        return "Pogoprotos.Networking.Requests.Messages.GetGymDetailsMessage"
    }
    override public func className() -> String {
        return "Pogoprotos.Networking.Requests.Messages.GetGymDetailsMessage"
    }
    override public func classMetaType() -> GeneratedMessage.Type {
        return Pogoprotos.Networking.Requests.Messages.GetGymDetailsMessage.self
    }
    //Meta information declaration end

    final public class Builder : GeneratedMessageBuilder {
      private var builderResult:Pogoprotos.Networking.Requests.Messages.GetGymDetailsMessage = Pogoprotos.Networking.Requests.Messages.GetGymDetailsMessage()
      public func getMessage() -> Pogoprotos.Networking.Requests.Messages.GetGymDetailsMessage {
          return builderResult
      }

      required override public init () {
         super.init()
      }
      public var hasGymId:Bool {
           get {
                return builderResult.hasGymId
           }
      }
      public var gymId:String {
           get {
                return builderResult.gymId
           }
           set (value) {
               builderResult.hasGymId = true
               builderResult.gymId = value
           }
      }
      public func setGymId(value:String) -> Pogoprotos.Networking.Requests.Messages.GetGymDetailsMessage.Builder {
        self.gymId = value
        return self
      }
      public func clearGymId() -> Pogoprotos.Networking.Requests.Messages.GetGymDetailsMessage.Builder{
           builderResult.hasGymId = false
           builderResult.gymId = ""
           return self
      }
      public var hasPlayerLatitude:Bool {
           get {
                return builderResult.hasPlayerLatitude
           }
      }
      public var playerLatitude:Double {
           get {
                return builderResult.playerLatitude
           }
           set (value) {
               builderResult.hasPlayerLatitude = true
               builderResult.playerLatitude = value
           }
      }
      public func setPlayerLatitude(value:Double) -> Pogoprotos.Networking.Requests.Messages.GetGymDetailsMessage.Builder {
        self.playerLatitude = value
        return self
      }
      public func clearPlayerLatitude() -> Pogoprotos.Networking.Requests.Messages.GetGymDetailsMessage.Builder{
           builderResult.hasPlayerLatitude = false
           builderResult.playerLatitude = Double(0)
           return self
      }
      public var hasPlayerLongitude:Bool {
           get {
                return builderResult.hasPlayerLongitude
           }
      }
      public var playerLongitude:Double {
           get {
                return builderResult.playerLongitude
           }
           set (value) {
               builderResult.hasPlayerLongitude = true
               builderResult.playerLongitude = value
           }
      }
      public func setPlayerLongitude(value:Double) -> Pogoprotos.Networking.Requests.Messages.GetGymDetailsMessage.Builder {
        self.playerLongitude = value
        return self
      }
      public func clearPlayerLongitude() -> Pogoprotos.Networking.Requests.Messages.GetGymDetailsMessage.Builder{
           builderResult.hasPlayerLongitude = false
           builderResult.playerLongitude = Double(0)
           return self
      }
      public var hasGymLatitude:Bool {
           get {
                return builderResult.hasGymLatitude
           }
      }
      public var gymLatitude:Double {
           get {
                return builderResult.gymLatitude
           }
           set (value) {
               builderResult.hasGymLatitude = true
               builderResult.gymLatitude = value
           }
      }
      public func setGymLatitude(value:Double) -> Pogoprotos.Networking.Requests.Messages.GetGymDetailsMessage.Builder {
        self.gymLatitude = value
        return self
      }
      public func clearGymLatitude() -> Pogoprotos.Networking.Requests.Messages.GetGymDetailsMessage.Builder{
           builderResult.hasGymLatitude = false
           builderResult.gymLatitude = Double(0)
           return self
      }
      public var hasGymLongitude:Bool {
           get {
                return builderResult.hasGymLongitude
           }
      }
      public var gymLongitude:Double {
           get {
                return builderResult.gymLongitude
           }
           set (value) {
               builderResult.hasGymLongitude = true
               builderResult.gymLongitude = value
           }
      }
      public func setGymLongitude(value:Double) -> Pogoprotos.Networking.Requests.Messages.GetGymDetailsMessage.Builder {
        self.gymLongitude = value
        return self
      }
      public func clearGymLongitude() -> Pogoprotos.Networking.Requests.Messages.GetGymDetailsMessage.Builder{
           builderResult.hasGymLongitude = false
           builderResult.gymLongitude = Double(0)
           return self
      }
      override public var internalGetResult:GeneratedMessage {
           get {
              return builderResult
           }
      }
      override public func clear() -> Pogoprotos.Networking.Requests.Messages.GetGymDetailsMessage.Builder {
        builderResult = Pogoprotos.Networking.Requests.Messages.GetGymDetailsMessage()
        return self
      }
      override public func clone() throws -> Pogoprotos.Networking.Requests.Messages.GetGymDetailsMessage.Builder {
        return try Pogoprotos.Networking.Requests.Messages.GetGymDetailsMessage.builderWithPrototype(builderResult)
      }
      override public func build() throws -> Pogoprotos.Networking.Requests.Messages.GetGymDetailsMessage {
           try checkInitialized()
           return buildPartial()
      }
      public func buildPartial() -> Pogoprotos.Networking.Requests.Messages.GetGymDetailsMessage {
        let returnMe:Pogoprotos.Networking.Requests.Messages.GetGymDetailsMessage = builderResult
        return returnMe
      }
      public func mergeFrom(other:Pogoprotos.Networking.Requests.Messages.GetGymDetailsMessage) throws -> Pogoprotos.Networking.Requests.Messages.GetGymDetailsMessage.Builder {
        if other == Pogoprotos.Networking.Requests.Messages.GetGymDetailsMessage() {
         return self
        }
        if other.hasGymId {
             gymId = other.gymId
        }
        if other.hasPlayerLatitude {
             playerLatitude = other.playerLatitude
        }
        if other.hasPlayerLongitude {
             playerLongitude = other.playerLongitude
        }
        if other.hasGymLatitude {
             gymLatitude = other.gymLatitude
        }
        if other.hasGymLongitude {
             gymLongitude = other.gymLongitude
        }
        try mergeUnknownFields(other.unknownFields)
        return self
      }
      override public func mergeFromCodedInputStream(input:CodedInputStream) throws -> Pogoprotos.Networking.Requests.Messages.GetGymDetailsMessage.Builder {
           return try mergeFromCodedInputStream(input, extensionRegistry:ExtensionRegistry())
      }
      override public func mergeFromCodedInputStream(input:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.GetGymDetailsMessage.Builder {
        let unknownFieldsBuilder:UnknownFieldSet.Builder = try UnknownFieldSet.builderWithUnknownFields(self.unknownFields)
        while (true) {
          let protobufTag = try input.readTag()
          switch protobufTag {
          case 0: 
            self.unknownFields = try unknownFieldsBuilder.build()
            return self

          case 10:
            gymId = try input.readString()

          case 17:
            playerLatitude = try input.readDouble()

          case 25:
            playerLongitude = try input.readDouble()

          case 33:
            gymLatitude = try input.readDouble()

          case 41:
            gymLongitude = try input.readDouble()

          default:
            if (!(try parseUnknownField(input,unknownFields:unknownFieldsBuilder, extensionRegistry:extensionRegistry, tag:protobufTag))) {
               unknownFields = try unknownFieldsBuilder.build()
               return self
            }
          }
        }
      }
      override class public func decodeToBuilder(jsonMap:Dictionary<String,AnyObject>) throws -> Pogoprotos.Networking.Requests.Messages.GetGymDetailsMessage.Builder {
        let resultDecodedBuilder = Pogoprotos.Networking.Requests.Messages.GetGymDetailsMessage.Builder()
        if let jsonValueGymId = jsonMap["gymId"] as? String {
          resultDecodedBuilder.gymId = jsonValueGymId
        }
        if let jsonValuePlayerLatitude = jsonMap["playerLatitude"] as? NSNumber {
          resultDecodedBuilder.playerLatitude = jsonValuePlayerLatitude.doubleValue
        }
        if let jsonValuePlayerLongitude = jsonMap["playerLongitude"] as? NSNumber {
          resultDecodedBuilder.playerLongitude = jsonValuePlayerLongitude.doubleValue
        }
        if let jsonValueGymLatitude = jsonMap["gymLatitude"] as? NSNumber {
          resultDecodedBuilder.gymLatitude = jsonValueGymLatitude.doubleValue
        }
        if let jsonValueGymLongitude = jsonMap["gymLongitude"] as? NSNumber {
          resultDecodedBuilder.gymLongitude = jsonValueGymLongitude.doubleValue
        }
        return resultDecodedBuilder
      }
      override class public func fromJSONToBuilder(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.GetGymDetailsMessage.Builder {
        let jsonData = try NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions(rawValue: 0))
        guard let jsDataCast = jsonData as? Dictionary<String,AnyObject> else {
          throw ProtocolBuffersError.InvalidProtocolBuffer("Invalid JSON data")
        }
        return try Pogoprotos.Networking.Requests.Messages.GetGymDetailsMessage.Builder.decodeToBuilder(jsDataCast)
      }
    }

  }

  // No message needed.
  final public class GetHatchedEggsMessage : GeneratedMessage, GeneratedMessageProtocol {
    required public init() {
         super.init()
    }
    override public func isInitialized() -> Bool {
     return true
    }
    override public func writeToCodedOutputStream(output:CodedOutputStream) throws {
      try unknownFields.writeToCodedOutputStream(output)
    }
    override public func serializedSize() -> Int32 {
      var serialize_size:Int32 = memoizedSerializedSize
      if serialize_size != -1 {
       return serialize_size
      }

      serialize_size = 0
      serialize_size += unknownFields.serializedSize()
      memoizedSerializedSize = serialize_size
      return serialize_size
    }
    public class func parseArrayDelimitedFromInputStream(input:NSInputStream) throws -> Array<Pogoprotos.Networking.Requests.Messages.GetHatchedEggsMessage> {
      var mergedArray = Array<Pogoprotos.Networking.Requests.Messages.GetHatchedEggsMessage>()
      while let value = try parseFromDelimitedFromInputStream(input) {
        mergedArray += [value]
      }
      return mergedArray
    }
    public class func parseFromDelimitedFromInputStream(input:NSInputStream) throws -> Pogoprotos.Networking.Requests.Messages.GetHatchedEggsMessage? {
      return try Pogoprotos.Networking.Requests.Messages.GetHatchedEggsMessage.Builder().mergeDelimitedFromInputStream(input)?.build()
    }
    public class func parseFromData(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.GetHatchedEggsMessage {
      return try Pogoprotos.Networking.Requests.Messages.GetHatchedEggsMessage.Builder().mergeFromData(data, extensionRegistry:Pogoprotos.Networking.Requests.Messages.PogoprotosNetworkingRequestsMessagesRoot.sharedInstance.extensionRegistry).build()
    }
    public class func parseFromData(data:NSData, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.GetHatchedEggsMessage {
      return try Pogoprotos.Networking.Requests.Messages.GetHatchedEggsMessage.Builder().mergeFromData(data, extensionRegistry:extensionRegistry).build()
    }
    public class func parseFromInputStream(input:NSInputStream) throws -> Pogoprotos.Networking.Requests.Messages.GetHatchedEggsMessage {
      return try Pogoprotos.Networking.Requests.Messages.GetHatchedEggsMessage.Builder().mergeFromInputStream(input).build()
    }
    public class func parseFromInputStream(input:NSInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.GetHatchedEggsMessage {
      return try Pogoprotos.Networking.Requests.Messages.GetHatchedEggsMessage.Builder().mergeFromInputStream(input, extensionRegistry:extensionRegistry).build()
    }
    public class func parseFromCodedInputStream(input:CodedInputStream) throws -> Pogoprotos.Networking.Requests.Messages.GetHatchedEggsMessage {
      return try Pogoprotos.Networking.Requests.Messages.GetHatchedEggsMessage.Builder().mergeFromCodedInputStream(input).build()
    }
    public class func parseFromCodedInputStream(input:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.GetHatchedEggsMessage {
      return try Pogoprotos.Networking.Requests.Messages.GetHatchedEggsMessage.Builder().mergeFromCodedInputStream(input, extensionRegistry:extensionRegistry).build()
    }
    public class func getBuilder() -> Pogoprotos.Networking.Requests.Messages.GetHatchedEggsMessage.Builder {
      return Pogoprotos.Networking.Requests.Messages.GetHatchedEggsMessage.classBuilder() as! Pogoprotos.Networking.Requests.Messages.GetHatchedEggsMessage.Builder
    }
    public func getBuilder() -> Pogoprotos.Networking.Requests.Messages.GetHatchedEggsMessage.Builder {
      return classBuilder() as! Pogoprotos.Networking.Requests.Messages.GetHatchedEggsMessage.Builder
    }
    override public class func classBuilder() -> MessageBuilder {
      return Pogoprotos.Networking.Requests.Messages.GetHatchedEggsMessage.Builder()
    }
    override public func classBuilder() -> MessageBuilder {
      return Pogoprotos.Networking.Requests.Messages.GetHatchedEggsMessage.Builder()
    }
    public func toBuilder() throws -> Pogoprotos.Networking.Requests.Messages.GetHatchedEggsMessage.Builder {
      return try Pogoprotos.Networking.Requests.Messages.GetHatchedEggsMessage.builderWithPrototype(self)
    }
    public class func builderWithPrototype(prototype:Pogoprotos.Networking.Requests.Messages.GetHatchedEggsMessage) throws -> Pogoprotos.Networking.Requests.Messages.GetHatchedEggsMessage.Builder {
      return try Pogoprotos.Networking.Requests.Messages.GetHatchedEggsMessage.Builder().mergeFrom(prototype)
    }
    override public func encode() throws -> Dictionary<String,AnyObject> {
      guard isInitialized() else {
        throw ProtocolBuffersError.InvalidProtocolBuffer("Uninitialized Message")
      }

      let jsonMap:Dictionary<String,AnyObject> = Dictionary<String,AnyObject>()
      return jsonMap
    }
    override class public func decode(jsonMap:Dictionary<String,AnyObject>) throws -> Pogoprotos.Networking.Requests.Messages.GetHatchedEggsMessage {
      return try Pogoprotos.Networking.Requests.Messages.GetHatchedEggsMessage.Builder.decodeToBuilder(jsonMap).build()
    }
    override class public func fromJSON(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.GetHatchedEggsMessage {
      return try Pogoprotos.Networking.Requests.Messages.GetHatchedEggsMessage.Builder.fromJSONToBuilder(data).build()
    }
    override public func getDescription(indent:String) throws -> String {
      var output = ""
      output += unknownFields.getDescription(indent)
      return output
    }
    override public var hashValue:Int {
        get {
            var hashCode:Int = 7
            hashCode = (hashCode &* 31) &+  unknownFields.hashValue
            return hashCode
        }
    }


    //Meta information declaration start

    override public class func className() -> String {
        return "Pogoprotos.Networking.Requests.Messages.GetHatchedEggsMessage"
    }
    override public func className() -> String {
        return "Pogoprotos.Networking.Requests.Messages.GetHatchedEggsMessage"
    }
    override public func classMetaType() -> GeneratedMessage.Type {
        return Pogoprotos.Networking.Requests.Messages.GetHatchedEggsMessage.self
    }
    //Meta information declaration end

    final public class Builder : GeneratedMessageBuilder {
      private var builderResult:Pogoprotos.Networking.Requests.Messages.GetHatchedEggsMessage = Pogoprotos.Networking.Requests.Messages.GetHatchedEggsMessage()
      public func getMessage() -> Pogoprotos.Networking.Requests.Messages.GetHatchedEggsMessage {
          return builderResult
      }

      required override public init () {
         super.init()
      }
      override public var internalGetResult:GeneratedMessage {
           get {
              return builderResult
           }
      }
      override public func clear() -> Pogoprotos.Networking.Requests.Messages.GetHatchedEggsMessage.Builder {
        builderResult = Pogoprotos.Networking.Requests.Messages.GetHatchedEggsMessage()
        return self
      }
      override public func clone() throws -> Pogoprotos.Networking.Requests.Messages.GetHatchedEggsMessage.Builder {
        return try Pogoprotos.Networking.Requests.Messages.GetHatchedEggsMessage.builderWithPrototype(builderResult)
      }
      override public func build() throws -> Pogoprotos.Networking.Requests.Messages.GetHatchedEggsMessage {
           try checkInitialized()
           return buildPartial()
      }
      public func buildPartial() -> Pogoprotos.Networking.Requests.Messages.GetHatchedEggsMessage {
        let returnMe:Pogoprotos.Networking.Requests.Messages.GetHatchedEggsMessage = builderResult
        return returnMe
      }
      public func mergeFrom(other:Pogoprotos.Networking.Requests.Messages.GetHatchedEggsMessage) throws -> Pogoprotos.Networking.Requests.Messages.GetHatchedEggsMessage.Builder {
        if other == Pogoprotos.Networking.Requests.Messages.GetHatchedEggsMessage() {
         return self
        }
        try mergeUnknownFields(other.unknownFields)
        return self
      }
      override public func mergeFromCodedInputStream(input:CodedInputStream) throws -> Pogoprotos.Networking.Requests.Messages.GetHatchedEggsMessage.Builder {
           return try mergeFromCodedInputStream(input, extensionRegistry:ExtensionRegistry())
      }
      override public func mergeFromCodedInputStream(input:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.GetHatchedEggsMessage.Builder {
        let unknownFieldsBuilder:UnknownFieldSet.Builder = try UnknownFieldSet.builderWithUnknownFields(self.unknownFields)
        while (true) {
          let protobufTag = try input.readTag()
          switch protobufTag {
          case 0: 
            self.unknownFields = try unknownFieldsBuilder.build()
            return self

          default:
            if (!(try parseUnknownField(input,unknownFields:unknownFieldsBuilder, extensionRegistry:extensionRegistry, tag:protobufTag))) {
               unknownFields = try unknownFieldsBuilder.build()
               return self
            }
          }
        }
      }
      override class public func decodeToBuilder(jsonMap:Dictionary<String,AnyObject>) throws -> Pogoprotos.Networking.Requests.Messages.GetHatchedEggsMessage.Builder {
        let resultDecodedBuilder = Pogoprotos.Networking.Requests.Messages.GetHatchedEggsMessage.Builder()
        return resultDecodedBuilder
      }
      override class public func fromJSONToBuilder(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.GetHatchedEggsMessage.Builder {
        let jsonData = try NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions(rawValue: 0))
        guard let jsDataCast = jsonData as? Dictionary<String,AnyObject> else {
          throw ProtocolBuffersError.InvalidProtocolBuffer("Invalid JSON data")
        }
        return try Pogoprotos.Networking.Requests.Messages.GetHatchedEggsMessage.Builder.decodeToBuilder(jsDataCast)
      }
    }

  }

  final public class GetIncensePokemonMessage : GeneratedMessage, GeneratedMessageProtocol {
    public private(set) var hasPlayerLatitude:Bool = false
    public private(set) var playerLatitude:Double = Double(0)

    public private(set) var hasPlayerLongitude:Bool = false
    public private(set) var playerLongitude:Double = Double(0)

    required public init() {
         super.init()
    }
    override public func isInitialized() -> Bool {
     return true
    }
    override public func writeToCodedOutputStream(output:CodedOutputStream) throws {
      if hasPlayerLatitude {
        try output.writeDouble(1, value:playerLatitude)
      }
      if hasPlayerLongitude {
        try output.writeDouble(2, value:playerLongitude)
      }
      try unknownFields.writeToCodedOutputStream(output)
    }
    override public func serializedSize() -> Int32 {
      var serialize_size:Int32 = memoizedSerializedSize
      if serialize_size != -1 {
       return serialize_size
      }

      serialize_size = 0
      if hasPlayerLatitude {
        serialize_size += playerLatitude.computeDoubleSize(1)
      }
      if hasPlayerLongitude {
        serialize_size += playerLongitude.computeDoubleSize(2)
      }
      serialize_size += unknownFields.serializedSize()
      memoizedSerializedSize = serialize_size
      return serialize_size
    }
    public class func parseArrayDelimitedFromInputStream(input:NSInputStream) throws -> Array<Pogoprotos.Networking.Requests.Messages.GetIncensePokemonMessage> {
      var mergedArray = Array<Pogoprotos.Networking.Requests.Messages.GetIncensePokemonMessage>()
      while let value = try parseFromDelimitedFromInputStream(input) {
        mergedArray += [value]
      }
      return mergedArray
    }
    public class func parseFromDelimitedFromInputStream(input:NSInputStream) throws -> Pogoprotos.Networking.Requests.Messages.GetIncensePokemonMessage? {
      return try Pogoprotos.Networking.Requests.Messages.GetIncensePokemonMessage.Builder().mergeDelimitedFromInputStream(input)?.build()
    }
    public class func parseFromData(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.GetIncensePokemonMessage {
      return try Pogoprotos.Networking.Requests.Messages.GetIncensePokemonMessage.Builder().mergeFromData(data, extensionRegistry:Pogoprotos.Networking.Requests.Messages.PogoprotosNetworkingRequestsMessagesRoot.sharedInstance.extensionRegistry).build()
    }
    public class func parseFromData(data:NSData, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.GetIncensePokemonMessage {
      return try Pogoprotos.Networking.Requests.Messages.GetIncensePokemonMessage.Builder().mergeFromData(data, extensionRegistry:extensionRegistry).build()
    }
    public class func parseFromInputStream(input:NSInputStream) throws -> Pogoprotos.Networking.Requests.Messages.GetIncensePokemonMessage {
      return try Pogoprotos.Networking.Requests.Messages.GetIncensePokemonMessage.Builder().mergeFromInputStream(input).build()
    }
    public class func parseFromInputStream(input:NSInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.GetIncensePokemonMessage {
      return try Pogoprotos.Networking.Requests.Messages.GetIncensePokemonMessage.Builder().mergeFromInputStream(input, extensionRegistry:extensionRegistry).build()
    }
    public class func parseFromCodedInputStream(input:CodedInputStream) throws -> Pogoprotos.Networking.Requests.Messages.GetIncensePokemonMessage {
      return try Pogoprotos.Networking.Requests.Messages.GetIncensePokemonMessage.Builder().mergeFromCodedInputStream(input).build()
    }
    public class func parseFromCodedInputStream(input:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.GetIncensePokemonMessage {
      return try Pogoprotos.Networking.Requests.Messages.GetIncensePokemonMessage.Builder().mergeFromCodedInputStream(input, extensionRegistry:extensionRegistry).build()
    }
    public class func getBuilder() -> Pogoprotos.Networking.Requests.Messages.GetIncensePokemonMessage.Builder {
      return Pogoprotos.Networking.Requests.Messages.GetIncensePokemonMessage.classBuilder() as! Pogoprotos.Networking.Requests.Messages.GetIncensePokemonMessage.Builder
    }
    public func getBuilder() -> Pogoprotos.Networking.Requests.Messages.GetIncensePokemonMessage.Builder {
      return classBuilder() as! Pogoprotos.Networking.Requests.Messages.GetIncensePokemonMessage.Builder
    }
    override public class func classBuilder() -> MessageBuilder {
      return Pogoprotos.Networking.Requests.Messages.GetIncensePokemonMessage.Builder()
    }
    override public func classBuilder() -> MessageBuilder {
      return Pogoprotos.Networking.Requests.Messages.GetIncensePokemonMessage.Builder()
    }
    public func toBuilder() throws -> Pogoprotos.Networking.Requests.Messages.GetIncensePokemonMessage.Builder {
      return try Pogoprotos.Networking.Requests.Messages.GetIncensePokemonMessage.builderWithPrototype(self)
    }
    public class func builderWithPrototype(prototype:Pogoprotos.Networking.Requests.Messages.GetIncensePokemonMessage) throws -> Pogoprotos.Networking.Requests.Messages.GetIncensePokemonMessage.Builder {
      return try Pogoprotos.Networking.Requests.Messages.GetIncensePokemonMessage.Builder().mergeFrom(prototype)
    }
    override public func encode() throws -> Dictionary<String,AnyObject> {
      guard isInitialized() else {
        throw ProtocolBuffersError.InvalidProtocolBuffer("Uninitialized Message")
      }

      var jsonMap:Dictionary<String,AnyObject> = Dictionary<String,AnyObject>()
      if hasPlayerLatitude {
        jsonMap["playerLatitude"] = NSNumber(double:playerLatitude)
      }
      if hasPlayerLongitude {
        jsonMap["playerLongitude"] = NSNumber(double:playerLongitude)
      }
      return jsonMap
    }
    override class public func decode(jsonMap:Dictionary<String,AnyObject>) throws -> Pogoprotos.Networking.Requests.Messages.GetIncensePokemonMessage {
      return try Pogoprotos.Networking.Requests.Messages.GetIncensePokemonMessage.Builder.decodeToBuilder(jsonMap).build()
    }
    override class public func fromJSON(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.GetIncensePokemonMessage {
      return try Pogoprotos.Networking.Requests.Messages.GetIncensePokemonMessage.Builder.fromJSONToBuilder(data).build()
    }
    override public func getDescription(indent:String) throws -> String {
      var output = ""
      if hasPlayerLatitude {
        output += "\(indent) playerLatitude: \(playerLatitude) \n"
      }
      if hasPlayerLongitude {
        output += "\(indent) playerLongitude: \(playerLongitude) \n"
      }
      output += unknownFields.getDescription(indent)
      return output
    }
    override public var hashValue:Int {
        get {
            var hashCode:Int = 7
            if hasPlayerLatitude {
               hashCode = (hashCode &* 31) &+ playerLatitude.hashValue
            }
            if hasPlayerLongitude {
               hashCode = (hashCode &* 31) &+ playerLongitude.hashValue
            }
            hashCode = (hashCode &* 31) &+  unknownFields.hashValue
            return hashCode
        }
    }


    //Meta information declaration start

    override public class func className() -> String {
        return "Pogoprotos.Networking.Requests.Messages.GetIncensePokemonMessage"
    }
    override public func className() -> String {
        return "Pogoprotos.Networking.Requests.Messages.GetIncensePokemonMessage"
    }
    override public func classMetaType() -> GeneratedMessage.Type {
        return Pogoprotos.Networking.Requests.Messages.GetIncensePokemonMessage.self
    }
    //Meta information declaration end

    final public class Builder : GeneratedMessageBuilder {
      private var builderResult:Pogoprotos.Networking.Requests.Messages.GetIncensePokemonMessage = Pogoprotos.Networking.Requests.Messages.GetIncensePokemonMessage()
      public func getMessage() -> Pogoprotos.Networking.Requests.Messages.GetIncensePokemonMessage {
          return builderResult
      }

      required override public init () {
         super.init()
      }
      public var hasPlayerLatitude:Bool {
           get {
                return builderResult.hasPlayerLatitude
           }
      }
      public var playerLatitude:Double {
           get {
                return builderResult.playerLatitude
           }
           set (value) {
               builderResult.hasPlayerLatitude = true
               builderResult.playerLatitude = value
           }
      }
      public func setPlayerLatitude(value:Double) -> Pogoprotos.Networking.Requests.Messages.GetIncensePokemonMessage.Builder {
        self.playerLatitude = value
        return self
      }
      public func clearPlayerLatitude() -> Pogoprotos.Networking.Requests.Messages.GetIncensePokemonMessage.Builder{
           builderResult.hasPlayerLatitude = false
           builderResult.playerLatitude = Double(0)
           return self
      }
      public var hasPlayerLongitude:Bool {
           get {
                return builderResult.hasPlayerLongitude
           }
      }
      public var playerLongitude:Double {
           get {
                return builderResult.playerLongitude
           }
           set (value) {
               builderResult.hasPlayerLongitude = true
               builderResult.playerLongitude = value
           }
      }
      public func setPlayerLongitude(value:Double) -> Pogoprotos.Networking.Requests.Messages.GetIncensePokemonMessage.Builder {
        self.playerLongitude = value
        return self
      }
      public func clearPlayerLongitude() -> Pogoprotos.Networking.Requests.Messages.GetIncensePokemonMessage.Builder{
           builderResult.hasPlayerLongitude = false
           builderResult.playerLongitude = Double(0)
           return self
      }
      override public var internalGetResult:GeneratedMessage {
           get {
              return builderResult
           }
      }
      override public func clear() -> Pogoprotos.Networking.Requests.Messages.GetIncensePokemonMessage.Builder {
        builderResult = Pogoprotos.Networking.Requests.Messages.GetIncensePokemonMessage()
        return self
      }
      override public func clone() throws -> Pogoprotos.Networking.Requests.Messages.GetIncensePokemonMessage.Builder {
        return try Pogoprotos.Networking.Requests.Messages.GetIncensePokemonMessage.builderWithPrototype(builderResult)
      }
      override public func build() throws -> Pogoprotos.Networking.Requests.Messages.GetIncensePokemonMessage {
           try checkInitialized()
           return buildPartial()
      }
      public func buildPartial() -> Pogoprotos.Networking.Requests.Messages.GetIncensePokemonMessage {
        let returnMe:Pogoprotos.Networking.Requests.Messages.GetIncensePokemonMessage = builderResult
        return returnMe
      }
      public func mergeFrom(other:Pogoprotos.Networking.Requests.Messages.GetIncensePokemonMessage) throws -> Pogoprotos.Networking.Requests.Messages.GetIncensePokemonMessage.Builder {
        if other == Pogoprotos.Networking.Requests.Messages.GetIncensePokemonMessage() {
         return self
        }
        if other.hasPlayerLatitude {
             playerLatitude = other.playerLatitude
        }
        if other.hasPlayerLongitude {
             playerLongitude = other.playerLongitude
        }
        try mergeUnknownFields(other.unknownFields)
        return self
      }
      override public func mergeFromCodedInputStream(input:CodedInputStream) throws -> Pogoprotos.Networking.Requests.Messages.GetIncensePokemonMessage.Builder {
           return try mergeFromCodedInputStream(input, extensionRegistry:ExtensionRegistry())
      }
      override public func mergeFromCodedInputStream(input:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.GetIncensePokemonMessage.Builder {
        let unknownFieldsBuilder:UnknownFieldSet.Builder = try UnknownFieldSet.builderWithUnknownFields(self.unknownFields)
        while (true) {
          let protobufTag = try input.readTag()
          switch protobufTag {
          case 0: 
            self.unknownFields = try unknownFieldsBuilder.build()
            return self

          case 9:
            playerLatitude = try input.readDouble()

          case 17:
            playerLongitude = try input.readDouble()

          default:
            if (!(try parseUnknownField(input,unknownFields:unknownFieldsBuilder, extensionRegistry:extensionRegistry, tag:protobufTag))) {
               unknownFields = try unknownFieldsBuilder.build()
               return self
            }
          }
        }
      }
      override class public func decodeToBuilder(jsonMap:Dictionary<String,AnyObject>) throws -> Pogoprotos.Networking.Requests.Messages.GetIncensePokemonMessage.Builder {
        let resultDecodedBuilder = Pogoprotos.Networking.Requests.Messages.GetIncensePokemonMessage.Builder()
        if let jsonValuePlayerLatitude = jsonMap["playerLatitude"] as? NSNumber {
          resultDecodedBuilder.playerLatitude = jsonValuePlayerLatitude.doubleValue
        }
        if let jsonValuePlayerLongitude = jsonMap["playerLongitude"] as? NSNumber {
          resultDecodedBuilder.playerLongitude = jsonValuePlayerLongitude.doubleValue
        }
        return resultDecodedBuilder
      }
      override class public func fromJSONToBuilder(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.GetIncensePokemonMessage.Builder {
        let jsonData = try NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions(rawValue: 0))
        guard let jsDataCast = jsonData as? Dictionary<String,AnyObject> else {
          throw ProtocolBuffersError.InvalidProtocolBuffer("Invalid JSON data")
        }
        return try Pogoprotos.Networking.Requests.Messages.GetIncensePokemonMessage.Builder.decodeToBuilder(jsDataCast)
      }
    }

  }

  final public class GetInventoryMessage : GeneratedMessage, GeneratedMessageProtocol {
    public private(set) var hasLastTimestampMs:Bool = false
    public private(set) var lastTimestampMs:Int64 = Int64(0)

    // TODO: Find out what this is.
    public private(set) var hasItemBeenSeen:Bool = false
    public private(set) var itemBeenSeen:Int32 = Int32(0)

    required public init() {
         super.init()
    }
    override public func isInitialized() -> Bool {
     return true
    }
    override public func writeToCodedOutputStream(output:CodedOutputStream) throws {
      if hasLastTimestampMs {
        try output.writeInt64(1, value:lastTimestampMs)
      }
      if hasItemBeenSeen {
        try output.writeInt32(2, value:itemBeenSeen)
      }
      try unknownFields.writeToCodedOutputStream(output)
    }
    override public func serializedSize() -> Int32 {
      var serialize_size:Int32 = memoizedSerializedSize
      if serialize_size != -1 {
       return serialize_size
      }

      serialize_size = 0
      if hasLastTimestampMs {
        serialize_size += lastTimestampMs.computeInt64Size(1)
      }
      if hasItemBeenSeen {
        serialize_size += itemBeenSeen.computeInt32Size(2)
      }
      serialize_size += unknownFields.serializedSize()
      memoizedSerializedSize = serialize_size
      return serialize_size
    }
    public class func parseArrayDelimitedFromInputStream(input:NSInputStream) throws -> Array<Pogoprotos.Networking.Requests.Messages.GetInventoryMessage> {
      var mergedArray = Array<Pogoprotos.Networking.Requests.Messages.GetInventoryMessage>()
      while let value = try parseFromDelimitedFromInputStream(input) {
        mergedArray += [value]
      }
      return mergedArray
    }
    public class func parseFromDelimitedFromInputStream(input:NSInputStream) throws -> Pogoprotos.Networking.Requests.Messages.GetInventoryMessage? {
      return try Pogoprotos.Networking.Requests.Messages.GetInventoryMessage.Builder().mergeDelimitedFromInputStream(input)?.build()
    }
    public class func parseFromData(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.GetInventoryMessage {
      return try Pogoprotos.Networking.Requests.Messages.GetInventoryMessage.Builder().mergeFromData(data, extensionRegistry:Pogoprotos.Networking.Requests.Messages.PogoprotosNetworkingRequestsMessagesRoot.sharedInstance.extensionRegistry).build()
    }
    public class func parseFromData(data:NSData, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.GetInventoryMessage {
      return try Pogoprotos.Networking.Requests.Messages.GetInventoryMessage.Builder().mergeFromData(data, extensionRegistry:extensionRegistry).build()
    }
    public class func parseFromInputStream(input:NSInputStream) throws -> Pogoprotos.Networking.Requests.Messages.GetInventoryMessage {
      return try Pogoprotos.Networking.Requests.Messages.GetInventoryMessage.Builder().mergeFromInputStream(input).build()
    }
    public class func parseFromInputStream(input:NSInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.GetInventoryMessage {
      return try Pogoprotos.Networking.Requests.Messages.GetInventoryMessage.Builder().mergeFromInputStream(input, extensionRegistry:extensionRegistry).build()
    }
    public class func parseFromCodedInputStream(input:CodedInputStream) throws -> Pogoprotos.Networking.Requests.Messages.GetInventoryMessage {
      return try Pogoprotos.Networking.Requests.Messages.GetInventoryMessage.Builder().mergeFromCodedInputStream(input).build()
    }
    public class func parseFromCodedInputStream(input:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.GetInventoryMessage {
      return try Pogoprotos.Networking.Requests.Messages.GetInventoryMessage.Builder().mergeFromCodedInputStream(input, extensionRegistry:extensionRegistry).build()
    }
    public class func getBuilder() -> Pogoprotos.Networking.Requests.Messages.GetInventoryMessage.Builder {
      return Pogoprotos.Networking.Requests.Messages.GetInventoryMessage.classBuilder() as! Pogoprotos.Networking.Requests.Messages.GetInventoryMessage.Builder
    }
    public func getBuilder() -> Pogoprotos.Networking.Requests.Messages.GetInventoryMessage.Builder {
      return classBuilder() as! Pogoprotos.Networking.Requests.Messages.GetInventoryMessage.Builder
    }
    override public class func classBuilder() -> MessageBuilder {
      return Pogoprotos.Networking.Requests.Messages.GetInventoryMessage.Builder()
    }
    override public func classBuilder() -> MessageBuilder {
      return Pogoprotos.Networking.Requests.Messages.GetInventoryMessage.Builder()
    }
    public func toBuilder() throws -> Pogoprotos.Networking.Requests.Messages.GetInventoryMessage.Builder {
      return try Pogoprotos.Networking.Requests.Messages.GetInventoryMessage.builderWithPrototype(self)
    }
    public class func builderWithPrototype(prototype:Pogoprotos.Networking.Requests.Messages.GetInventoryMessage) throws -> Pogoprotos.Networking.Requests.Messages.GetInventoryMessage.Builder {
      return try Pogoprotos.Networking.Requests.Messages.GetInventoryMessage.Builder().mergeFrom(prototype)
    }
    override public func encode() throws -> Dictionary<String,AnyObject> {
      guard isInitialized() else {
        throw ProtocolBuffersError.InvalidProtocolBuffer("Uninitialized Message")
      }

      var jsonMap:Dictionary<String,AnyObject> = Dictionary<String,AnyObject>()
      if hasLastTimestampMs {
        jsonMap["lastTimestampMs"] = "\(lastTimestampMs)"
      }
      if hasItemBeenSeen {
        jsonMap["itemBeenSeen"] = NSNumber(int:itemBeenSeen)
      }
      return jsonMap
    }
    override class public func decode(jsonMap:Dictionary<String,AnyObject>) throws -> Pogoprotos.Networking.Requests.Messages.GetInventoryMessage {
      return try Pogoprotos.Networking.Requests.Messages.GetInventoryMessage.Builder.decodeToBuilder(jsonMap).build()
    }
    override class public func fromJSON(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.GetInventoryMessage {
      return try Pogoprotos.Networking.Requests.Messages.GetInventoryMessage.Builder.fromJSONToBuilder(data).build()
    }
    override public func getDescription(indent:String) throws -> String {
      var output = ""
      if hasLastTimestampMs {
        output += "\(indent) lastTimestampMs: \(lastTimestampMs) \n"
      }
      if hasItemBeenSeen {
        output += "\(indent) itemBeenSeen: \(itemBeenSeen) \n"
      }
      output += unknownFields.getDescription(indent)
      return output
    }
    override public var hashValue:Int {
        get {
            var hashCode:Int = 7
            if hasLastTimestampMs {
               hashCode = (hashCode &* 31) &+ lastTimestampMs.hashValue
            }
            if hasItemBeenSeen {
               hashCode = (hashCode &* 31) &+ itemBeenSeen.hashValue
            }
            hashCode = (hashCode &* 31) &+  unknownFields.hashValue
            return hashCode
        }
    }


    //Meta information declaration start

    override public class func className() -> String {
        return "Pogoprotos.Networking.Requests.Messages.GetInventoryMessage"
    }
    override public func className() -> String {
        return "Pogoprotos.Networking.Requests.Messages.GetInventoryMessage"
    }
    override public func classMetaType() -> GeneratedMessage.Type {
        return Pogoprotos.Networking.Requests.Messages.GetInventoryMessage.self
    }
    //Meta information declaration end

    final public class Builder : GeneratedMessageBuilder {
      private var builderResult:Pogoprotos.Networking.Requests.Messages.GetInventoryMessage = Pogoprotos.Networking.Requests.Messages.GetInventoryMessage()
      public func getMessage() -> Pogoprotos.Networking.Requests.Messages.GetInventoryMessage {
          return builderResult
      }

      required override public init () {
         super.init()
      }
      public var hasLastTimestampMs:Bool {
           get {
                return builderResult.hasLastTimestampMs
           }
      }
      public var lastTimestampMs:Int64 {
           get {
                return builderResult.lastTimestampMs
           }
           set (value) {
               builderResult.hasLastTimestampMs = true
               builderResult.lastTimestampMs = value
           }
      }
      public func setLastTimestampMs(value:Int64) -> Pogoprotos.Networking.Requests.Messages.GetInventoryMessage.Builder {
        self.lastTimestampMs = value
        return self
      }
      public func clearLastTimestampMs() -> Pogoprotos.Networking.Requests.Messages.GetInventoryMessage.Builder{
           builderResult.hasLastTimestampMs = false
           builderResult.lastTimestampMs = Int64(0)
           return self
      }
      public var hasItemBeenSeen:Bool {
           get {
                return builderResult.hasItemBeenSeen
           }
      }
      public var itemBeenSeen:Int32 {
           get {
                return builderResult.itemBeenSeen
           }
           set (value) {
               builderResult.hasItemBeenSeen = true
               builderResult.itemBeenSeen = value
           }
      }
      public func setItemBeenSeen(value:Int32) -> Pogoprotos.Networking.Requests.Messages.GetInventoryMessage.Builder {
        self.itemBeenSeen = value
        return self
      }
      public func clearItemBeenSeen() -> Pogoprotos.Networking.Requests.Messages.GetInventoryMessage.Builder{
           builderResult.hasItemBeenSeen = false
           builderResult.itemBeenSeen = Int32(0)
           return self
      }
      override public var internalGetResult:GeneratedMessage {
           get {
              return builderResult
           }
      }
      override public func clear() -> Pogoprotos.Networking.Requests.Messages.GetInventoryMessage.Builder {
        builderResult = Pogoprotos.Networking.Requests.Messages.GetInventoryMessage()
        return self
      }
      override public func clone() throws -> Pogoprotos.Networking.Requests.Messages.GetInventoryMessage.Builder {
        return try Pogoprotos.Networking.Requests.Messages.GetInventoryMessage.builderWithPrototype(builderResult)
      }
      override public func build() throws -> Pogoprotos.Networking.Requests.Messages.GetInventoryMessage {
           try checkInitialized()
           return buildPartial()
      }
      public func buildPartial() -> Pogoprotos.Networking.Requests.Messages.GetInventoryMessage {
        let returnMe:Pogoprotos.Networking.Requests.Messages.GetInventoryMessage = builderResult
        return returnMe
      }
      public func mergeFrom(other:Pogoprotos.Networking.Requests.Messages.GetInventoryMessage) throws -> Pogoprotos.Networking.Requests.Messages.GetInventoryMessage.Builder {
        if other == Pogoprotos.Networking.Requests.Messages.GetInventoryMessage() {
         return self
        }
        if other.hasLastTimestampMs {
             lastTimestampMs = other.lastTimestampMs
        }
        if other.hasItemBeenSeen {
             itemBeenSeen = other.itemBeenSeen
        }
        try mergeUnknownFields(other.unknownFields)
        return self
      }
      override public func mergeFromCodedInputStream(input:CodedInputStream) throws -> Pogoprotos.Networking.Requests.Messages.GetInventoryMessage.Builder {
           return try mergeFromCodedInputStream(input, extensionRegistry:ExtensionRegistry())
      }
      override public func mergeFromCodedInputStream(input:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.GetInventoryMessage.Builder {
        let unknownFieldsBuilder:UnknownFieldSet.Builder = try UnknownFieldSet.builderWithUnknownFields(self.unknownFields)
        while (true) {
          let protobufTag = try input.readTag()
          switch protobufTag {
          case 0: 
            self.unknownFields = try unknownFieldsBuilder.build()
            return self

          case 8:
            lastTimestampMs = try input.readInt64()

          case 16:
            itemBeenSeen = try input.readInt32()

          default:
            if (!(try parseUnknownField(input,unknownFields:unknownFieldsBuilder, extensionRegistry:extensionRegistry, tag:protobufTag))) {
               unknownFields = try unknownFieldsBuilder.build()
               return self
            }
          }
        }
      }
      override class public func decodeToBuilder(jsonMap:Dictionary<String,AnyObject>) throws -> Pogoprotos.Networking.Requests.Messages.GetInventoryMessage.Builder {
        let resultDecodedBuilder = Pogoprotos.Networking.Requests.Messages.GetInventoryMessage.Builder()
        if let jsonValueLastTimestampMs = jsonMap["lastTimestampMs"] as? String {
          resultDecodedBuilder.lastTimestampMs = Int64(jsonValueLastTimestampMs)!
        }
        if let jsonValueItemBeenSeen = jsonMap["itemBeenSeen"] as? NSNumber {
          resultDecodedBuilder.itemBeenSeen = jsonValueItemBeenSeen.intValue
        }
        return resultDecodedBuilder
      }
      override class public func fromJSONToBuilder(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.GetInventoryMessage.Builder {
        let jsonData = try NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions(rawValue: 0))
        guard let jsDataCast = jsonData as? Dictionary<String,AnyObject> else {
          throw ProtocolBuffersError.InvalidProtocolBuffer("Invalid JSON data")
        }
        return try Pogoprotos.Networking.Requests.Messages.GetInventoryMessage.Builder.decodeToBuilder(jsDataCast)
      }
    }

  }

  final public class GetMapObjectsMessage : GeneratedMessage, GeneratedMessageProtocol {
    public private(set) var cellId:Array<UInt64> = Array<UInt64>()
    private var cellIdMemoizedSerializedSize:Int32 = -1
    public private(set) var sinceTimestampMs:Array<Int64> = Array<Int64>()
    private var sinceTimestampMsMemoizedSerializedSize:Int32 = -1
    public private(set) var hasLatitude:Bool = false
    public private(set) var latitude:Double = Double(0)

    public private(set) var hasLongitude:Bool = false
    public private(set) var longitude:Double = Double(0)

    required public init() {
         super.init()
    }
    override public func isInitialized() -> Bool {
     return true
    }
    override public func writeToCodedOutputStream(output:CodedOutputStream) throws {
      if !cellId.isEmpty {
        try output.writeRawVarint32(10)
        try output.writeRawVarint32(cellIdMemoizedSerializedSize)
        for oneValuecellId in cellId {
          try output.writeUInt64NoTag(oneValuecellId)
        }
      }
      if !sinceTimestampMs.isEmpty {
        try output.writeRawVarint32(18)
        try output.writeRawVarint32(sinceTimestampMsMemoizedSerializedSize)
        for oneValuesinceTimestampMs in sinceTimestampMs {
          try output.writeInt64NoTag(oneValuesinceTimestampMs)
        }
      }
      if hasLatitude {
        try output.writeDouble(3, value:latitude)
      }
      if hasLongitude {
        try output.writeDouble(4, value:longitude)
      }
      try unknownFields.writeToCodedOutputStream(output)
    }
    override public func serializedSize() -> Int32 {
      var serialize_size:Int32 = memoizedSerializedSize
      if serialize_size != -1 {
       return serialize_size
      }

      serialize_size = 0
      var dataSizeCellId:Int32 = 0
      for oneValuecellId in cellId {
          dataSizeCellId += oneValuecellId.computeUInt64SizeNoTag()
      }
      serialize_size += dataSizeCellId
      if !cellId.isEmpty {
        serialize_size += 1
        serialize_size += dataSizeCellId.computeInt32SizeNoTag()
      }
      cellIdMemoizedSerializedSize = dataSizeCellId
      var dataSizeSinceTimestampMs:Int32 = 0
      for oneValuesinceTimestampMs in sinceTimestampMs {
          dataSizeSinceTimestampMs += oneValuesinceTimestampMs.computeInt64SizeNoTag()
      }
      serialize_size += dataSizeSinceTimestampMs
      if !sinceTimestampMs.isEmpty {
        serialize_size += 1
        serialize_size += dataSizeSinceTimestampMs.computeInt32SizeNoTag()
      }
      sinceTimestampMsMemoizedSerializedSize = dataSizeSinceTimestampMs
      if hasLatitude {
        serialize_size += latitude.computeDoubleSize(3)
      }
      if hasLongitude {
        serialize_size += longitude.computeDoubleSize(4)
      }
      serialize_size += unknownFields.serializedSize()
      memoizedSerializedSize = serialize_size
      return serialize_size
    }
    public class func parseArrayDelimitedFromInputStream(input:NSInputStream) throws -> Array<Pogoprotos.Networking.Requests.Messages.GetMapObjectsMessage> {
      var mergedArray = Array<Pogoprotos.Networking.Requests.Messages.GetMapObjectsMessage>()
      while let value = try parseFromDelimitedFromInputStream(input) {
        mergedArray += [value]
      }
      return mergedArray
    }
    public class func parseFromDelimitedFromInputStream(input:NSInputStream) throws -> Pogoprotos.Networking.Requests.Messages.GetMapObjectsMessage? {
      return try Pogoprotos.Networking.Requests.Messages.GetMapObjectsMessage.Builder().mergeDelimitedFromInputStream(input)?.build()
    }
    public class func parseFromData(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.GetMapObjectsMessage {
      return try Pogoprotos.Networking.Requests.Messages.GetMapObjectsMessage.Builder().mergeFromData(data, extensionRegistry:Pogoprotos.Networking.Requests.Messages.PogoprotosNetworkingRequestsMessagesRoot.sharedInstance.extensionRegistry).build()
    }
    public class func parseFromData(data:NSData, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.GetMapObjectsMessage {
      return try Pogoprotos.Networking.Requests.Messages.GetMapObjectsMessage.Builder().mergeFromData(data, extensionRegistry:extensionRegistry).build()
    }
    public class func parseFromInputStream(input:NSInputStream) throws -> Pogoprotos.Networking.Requests.Messages.GetMapObjectsMessage {
      return try Pogoprotos.Networking.Requests.Messages.GetMapObjectsMessage.Builder().mergeFromInputStream(input).build()
    }
    public class func parseFromInputStream(input:NSInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.GetMapObjectsMessage {
      return try Pogoprotos.Networking.Requests.Messages.GetMapObjectsMessage.Builder().mergeFromInputStream(input, extensionRegistry:extensionRegistry).build()
    }
    public class func parseFromCodedInputStream(input:CodedInputStream) throws -> Pogoprotos.Networking.Requests.Messages.GetMapObjectsMessage {
      return try Pogoprotos.Networking.Requests.Messages.GetMapObjectsMessage.Builder().mergeFromCodedInputStream(input).build()
    }
    public class func parseFromCodedInputStream(input:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.GetMapObjectsMessage {
      return try Pogoprotos.Networking.Requests.Messages.GetMapObjectsMessage.Builder().mergeFromCodedInputStream(input, extensionRegistry:extensionRegistry).build()
    }
    public class func getBuilder() -> Pogoprotos.Networking.Requests.Messages.GetMapObjectsMessage.Builder {
      return Pogoprotos.Networking.Requests.Messages.GetMapObjectsMessage.classBuilder() as! Pogoprotos.Networking.Requests.Messages.GetMapObjectsMessage.Builder
    }
    public func getBuilder() -> Pogoprotos.Networking.Requests.Messages.GetMapObjectsMessage.Builder {
      return classBuilder() as! Pogoprotos.Networking.Requests.Messages.GetMapObjectsMessage.Builder
    }
    override public class func classBuilder() -> MessageBuilder {
      return Pogoprotos.Networking.Requests.Messages.GetMapObjectsMessage.Builder()
    }
    override public func classBuilder() -> MessageBuilder {
      return Pogoprotos.Networking.Requests.Messages.GetMapObjectsMessage.Builder()
    }
    public func toBuilder() throws -> Pogoprotos.Networking.Requests.Messages.GetMapObjectsMessage.Builder {
      return try Pogoprotos.Networking.Requests.Messages.GetMapObjectsMessage.builderWithPrototype(self)
    }
    public class func builderWithPrototype(prototype:Pogoprotos.Networking.Requests.Messages.GetMapObjectsMessage) throws -> Pogoprotos.Networking.Requests.Messages.GetMapObjectsMessage.Builder {
      return try Pogoprotos.Networking.Requests.Messages.GetMapObjectsMessage.Builder().mergeFrom(prototype)
    }
    override public func encode() throws -> Dictionary<String,AnyObject> {
      guard isInitialized() else {
        throw ProtocolBuffersError.InvalidProtocolBuffer("Uninitialized Message")
      }

      var jsonMap:Dictionary<String,AnyObject> = Dictionary<String,AnyObject>()
      if !cellId.isEmpty {
        var jsonArrayCellId:Array<String> = []
          for oneValueCellId in cellId {
            jsonArrayCellId += ["\(oneValueCellId)"]
          }
        jsonMap["cellId"] = jsonArrayCellId
      }
      if !sinceTimestampMs.isEmpty {
        var jsonArraySinceTimestampMs:Array<String> = []
          for oneValueSinceTimestampMs in sinceTimestampMs {
            jsonArraySinceTimestampMs += ["\(oneValueSinceTimestampMs)"]
          }
        jsonMap["sinceTimestampMs"] = jsonArraySinceTimestampMs
      }
      if hasLatitude {
        jsonMap["latitude"] = NSNumber(double:latitude)
      }
      if hasLongitude {
        jsonMap["longitude"] = NSNumber(double:longitude)
      }
      return jsonMap
    }
    override class public func decode(jsonMap:Dictionary<String,AnyObject>) throws -> Pogoprotos.Networking.Requests.Messages.GetMapObjectsMessage {
      return try Pogoprotos.Networking.Requests.Messages.GetMapObjectsMessage.Builder.decodeToBuilder(jsonMap).build()
    }
    override class public func fromJSON(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.GetMapObjectsMessage {
      return try Pogoprotos.Networking.Requests.Messages.GetMapObjectsMessage.Builder.fromJSONToBuilder(data).build()
    }
    override public func getDescription(indent:String) throws -> String {
      var output = ""
      var cellIdElementIndex:Int = 0
      for oneValueCellId in cellId  {
          output += "\(indent) cellId[\(cellIdElementIndex)]: \(oneValueCellId)\n"
          cellIdElementIndex += 1
      }
      var sinceTimestampMsElementIndex:Int = 0
      for oneValueSinceTimestampMs in sinceTimestampMs  {
          output += "\(indent) sinceTimestampMs[\(sinceTimestampMsElementIndex)]: \(oneValueSinceTimestampMs)\n"
          sinceTimestampMsElementIndex += 1
      }
      if hasLatitude {
        output += "\(indent) latitude: \(latitude) \n"
      }
      if hasLongitude {
        output += "\(indent) longitude: \(longitude) \n"
      }
      output += unknownFields.getDescription(indent)
      return output
    }
    override public var hashValue:Int {
        get {
            var hashCode:Int = 7
            for oneValueCellId in cellId {
                hashCode = (hashCode &* 31) &+ oneValueCellId.hashValue
            }
            for oneValueSinceTimestampMs in sinceTimestampMs {
                hashCode = (hashCode &* 31) &+ oneValueSinceTimestampMs.hashValue
            }
            if hasLatitude {
               hashCode = (hashCode &* 31) &+ latitude.hashValue
            }
            if hasLongitude {
               hashCode = (hashCode &* 31) &+ longitude.hashValue
            }
            hashCode = (hashCode &* 31) &+  unknownFields.hashValue
            return hashCode
        }
    }


    //Meta information declaration start

    override public class func className() -> String {
        return "Pogoprotos.Networking.Requests.Messages.GetMapObjectsMessage"
    }
    override public func className() -> String {
        return "Pogoprotos.Networking.Requests.Messages.GetMapObjectsMessage"
    }
    override public func classMetaType() -> GeneratedMessage.Type {
        return Pogoprotos.Networking.Requests.Messages.GetMapObjectsMessage.self
    }
    //Meta information declaration end

    final public class Builder : GeneratedMessageBuilder {
      private var builderResult:Pogoprotos.Networking.Requests.Messages.GetMapObjectsMessage = Pogoprotos.Networking.Requests.Messages.GetMapObjectsMessage()
      public func getMessage() -> Pogoprotos.Networking.Requests.Messages.GetMapObjectsMessage {
          return builderResult
      }

      required override public init () {
         super.init()
      }
      public var cellId:Array<UInt64> {
           get {
               return builderResult.cellId
           }
           set (array) {
               builderResult.cellId = array
           }
      }
      public func setCellId(value:Array<UInt64>) -> Pogoprotos.Networking.Requests.Messages.GetMapObjectsMessage.Builder {
        self.cellId = value
        return self
      }
      public func clearCellId() -> Pogoprotos.Networking.Requests.Messages.GetMapObjectsMessage.Builder {
         builderResult.cellId.removeAll(keepCapacity: false)
         return self
      }
      public var sinceTimestampMs:Array<Int64> {
           get {
               return builderResult.sinceTimestampMs
           }
           set (array) {
               builderResult.sinceTimestampMs = array
           }
      }
      public func setSinceTimestampMs(value:Array<Int64>) -> Pogoprotos.Networking.Requests.Messages.GetMapObjectsMessage.Builder {
        self.sinceTimestampMs = value
        return self
      }
      public func clearSinceTimestampMs() -> Pogoprotos.Networking.Requests.Messages.GetMapObjectsMessage.Builder {
         builderResult.sinceTimestampMs.removeAll(keepCapacity: false)
         return self
      }
      public var hasLatitude:Bool {
           get {
                return builderResult.hasLatitude
           }
      }
      public var latitude:Double {
           get {
                return builderResult.latitude
           }
           set (value) {
               builderResult.hasLatitude = true
               builderResult.latitude = value
           }
      }
      public func setLatitude(value:Double) -> Pogoprotos.Networking.Requests.Messages.GetMapObjectsMessage.Builder {
        self.latitude = value
        return self
      }
      public func clearLatitude() -> Pogoprotos.Networking.Requests.Messages.GetMapObjectsMessage.Builder{
           builderResult.hasLatitude = false
           builderResult.latitude = Double(0)
           return self
      }
      public var hasLongitude:Bool {
           get {
                return builderResult.hasLongitude
           }
      }
      public var longitude:Double {
           get {
                return builderResult.longitude
           }
           set (value) {
               builderResult.hasLongitude = true
               builderResult.longitude = value
           }
      }
      public func setLongitude(value:Double) -> Pogoprotos.Networking.Requests.Messages.GetMapObjectsMessage.Builder {
        self.longitude = value
        return self
      }
      public func clearLongitude() -> Pogoprotos.Networking.Requests.Messages.GetMapObjectsMessage.Builder{
           builderResult.hasLongitude = false
           builderResult.longitude = Double(0)
           return self
      }
      override public var internalGetResult:GeneratedMessage {
           get {
              return builderResult
           }
      }
      override public func clear() -> Pogoprotos.Networking.Requests.Messages.GetMapObjectsMessage.Builder {
        builderResult = Pogoprotos.Networking.Requests.Messages.GetMapObjectsMessage()
        return self
      }
      override public func clone() throws -> Pogoprotos.Networking.Requests.Messages.GetMapObjectsMessage.Builder {
        return try Pogoprotos.Networking.Requests.Messages.GetMapObjectsMessage.builderWithPrototype(builderResult)
      }
      override public func build() throws -> Pogoprotos.Networking.Requests.Messages.GetMapObjectsMessage {
           try checkInitialized()
           return buildPartial()
      }
      public func buildPartial() -> Pogoprotos.Networking.Requests.Messages.GetMapObjectsMessage {
        let returnMe:Pogoprotos.Networking.Requests.Messages.GetMapObjectsMessage = builderResult
        return returnMe
      }
      public func mergeFrom(other:Pogoprotos.Networking.Requests.Messages.GetMapObjectsMessage) throws -> Pogoprotos.Networking.Requests.Messages.GetMapObjectsMessage.Builder {
        if other == Pogoprotos.Networking.Requests.Messages.GetMapObjectsMessage() {
         return self
        }
        if !other.cellId.isEmpty {
            builderResult.cellId += other.cellId
        }
        if !other.sinceTimestampMs.isEmpty {
            builderResult.sinceTimestampMs += other.sinceTimestampMs
        }
        if other.hasLatitude {
             latitude = other.latitude
        }
        if other.hasLongitude {
             longitude = other.longitude
        }
        try mergeUnknownFields(other.unknownFields)
        return self
      }
      override public func mergeFromCodedInputStream(input:CodedInputStream) throws -> Pogoprotos.Networking.Requests.Messages.GetMapObjectsMessage.Builder {
           return try mergeFromCodedInputStream(input, extensionRegistry:ExtensionRegistry())
      }
      override public func mergeFromCodedInputStream(input:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.GetMapObjectsMessage.Builder {
        let unknownFieldsBuilder:UnknownFieldSet.Builder = try UnknownFieldSet.builderWithUnknownFields(self.unknownFields)
        while (true) {
          let protobufTag = try input.readTag()
          switch protobufTag {
          case 0: 
            self.unknownFields = try unknownFieldsBuilder.build()
            return self

          case 10:
            let length:Int32 = try input.readRawVarint32()
            let limit:Int32 = try input.pushLimit(length)
            while (input.bytesUntilLimit() > 0) {
              builderResult.cellId += [try input.readUInt64()]
            }
            input.popLimit(limit)

          case 18:
            let length:Int32 = try input.readRawVarint32()
            let limit:Int32 = try input.pushLimit(length)
            while (input.bytesUntilLimit() > 0) {
              builderResult.sinceTimestampMs += [try input.readInt64()]
            }
            input.popLimit(limit)

          case 25:
            latitude = try input.readDouble()

          case 33:
            longitude = try input.readDouble()

          default:
            if (!(try parseUnknownField(input,unknownFields:unknownFieldsBuilder, extensionRegistry:extensionRegistry, tag:protobufTag))) {
               unknownFields = try unknownFieldsBuilder.build()
               return self
            }
          }
        }
      }
      override class public func decodeToBuilder(jsonMap:Dictionary<String,AnyObject>) throws -> Pogoprotos.Networking.Requests.Messages.GetMapObjectsMessage.Builder {
        let resultDecodedBuilder = Pogoprotos.Networking.Requests.Messages.GetMapObjectsMessage.Builder()
        if let jsonValueCellId = jsonMap["cellId"] as? Array<String> {
          var jsonArrayCellId:Array<UInt64> = []
          for oneValueCellId in jsonValueCellId {
            jsonArrayCellId += [UInt64(oneValueCellId)!]
          }
          resultDecodedBuilder.cellId = jsonArrayCellId
        }
        if let jsonValueSinceTimestampMs = jsonMap["sinceTimestampMs"] as? Array<String> {
          var jsonArraySinceTimestampMs:Array<Int64> = []
          for oneValueSinceTimestampMs in jsonValueSinceTimestampMs {
            jsonArraySinceTimestampMs += [Int64(oneValueSinceTimestampMs)!]
          }
          resultDecodedBuilder.sinceTimestampMs = jsonArraySinceTimestampMs
        }
        if let jsonValueLatitude = jsonMap["latitude"] as? NSNumber {
          resultDecodedBuilder.latitude = jsonValueLatitude.doubleValue
        }
        if let jsonValueLongitude = jsonMap["longitude"] as? NSNumber {
          resultDecodedBuilder.longitude = jsonValueLongitude.doubleValue
        }
        return resultDecodedBuilder
      }
      override class public func fromJSONToBuilder(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.GetMapObjectsMessage.Builder {
        let jsonData = try NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions(rawValue: 0))
        guard let jsDataCast = jsonData as? Dictionary<String,AnyObject> else {
          throw ProtocolBuffersError.InvalidProtocolBuffer("Invalid JSON data")
        }
        return try Pogoprotos.Networking.Requests.Messages.GetMapObjectsMessage.Builder.decodeToBuilder(jsDataCast)
      }
    }

  }

  // No message needed.
  final public class GetPlayerMessage : GeneratedMessage, GeneratedMessageProtocol {
    required public init() {
         super.init()
    }
    override public func isInitialized() -> Bool {
     return true
    }
    override public func writeToCodedOutputStream(output:CodedOutputStream) throws {
      try unknownFields.writeToCodedOutputStream(output)
    }
    override public func serializedSize() -> Int32 {
      var serialize_size:Int32 = memoizedSerializedSize
      if serialize_size != -1 {
       return serialize_size
      }

      serialize_size = 0
      serialize_size += unknownFields.serializedSize()
      memoizedSerializedSize = serialize_size
      return serialize_size
    }
    public class func parseArrayDelimitedFromInputStream(input:NSInputStream) throws -> Array<Pogoprotos.Networking.Requests.Messages.GetPlayerMessage> {
      var mergedArray = Array<Pogoprotos.Networking.Requests.Messages.GetPlayerMessage>()
      while let value = try parseFromDelimitedFromInputStream(input) {
        mergedArray += [value]
      }
      return mergedArray
    }
    public class func parseFromDelimitedFromInputStream(input:NSInputStream) throws -> Pogoprotos.Networking.Requests.Messages.GetPlayerMessage? {
      return try Pogoprotos.Networking.Requests.Messages.GetPlayerMessage.Builder().mergeDelimitedFromInputStream(input)?.build()
    }
    public class func parseFromData(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.GetPlayerMessage {
      return try Pogoprotos.Networking.Requests.Messages.GetPlayerMessage.Builder().mergeFromData(data, extensionRegistry:Pogoprotos.Networking.Requests.Messages.PogoprotosNetworkingRequestsMessagesRoot.sharedInstance.extensionRegistry).build()
    }
    public class func parseFromData(data:NSData, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.GetPlayerMessage {
      return try Pogoprotos.Networking.Requests.Messages.GetPlayerMessage.Builder().mergeFromData(data, extensionRegistry:extensionRegistry).build()
    }
    public class func parseFromInputStream(input:NSInputStream) throws -> Pogoprotos.Networking.Requests.Messages.GetPlayerMessage {
      return try Pogoprotos.Networking.Requests.Messages.GetPlayerMessage.Builder().mergeFromInputStream(input).build()
    }
    public class func parseFromInputStream(input:NSInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.GetPlayerMessage {
      return try Pogoprotos.Networking.Requests.Messages.GetPlayerMessage.Builder().mergeFromInputStream(input, extensionRegistry:extensionRegistry).build()
    }
    public class func parseFromCodedInputStream(input:CodedInputStream) throws -> Pogoprotos.Networking.Requests.Messages.GetPlayerMessage {
      return try Pogoprotos.Networking.Requests.Messages.GetPlayerMessage.Builder().mergeFromCodedInputStream(input).build()
    }
    public class func parseFromCodedInputStream(input:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.GetPlayerMessage {
      return try Pogoprotos.Networking.Requests.Messages.GetPlayerMessage.Builder().mergeFromCodedInputStream(input, extensionRegistry:extensionRegistry).build()
    }
    public class func getBuilder() -> Pogoprotos.Networking.Requests.Messages.GetPlayerMessage.Builder {
      return Pogoprotos.Networking.Requests.Messages.GetPlayerMessage.classBuilder() as! Pogoprotos.Networking.Requests.Messages.GetPlayerMessage.Builder
    }
    public func getBuilder() -> Pogoprotos.Networking.Requests.Messages.GetPlayerMessage.Builder {
      return classBuilder() as! Pogoprotos.Networking.Requests.Messages.GetPlayerMessage.Builder
    }
    override public class func classBuilder() -> MessageBuilder {
      return Pogoprotos.Networking.Requests.Messages.GetPlayerMessage.Builder()
    }
    override public func classBuilder() -> MessageBuilder {
      return Pogoprotos.Networking.Requests.Messages.GetPlayerMessage.Builder()
    }
    public func toBuilder() throws -> Pogoprotos.Networking.Requests.Messages.GetPlayerMessage.Builder {
      return try Pogoprotos.Networking.Requests.Messages.GetPlayerMessage.builderWithPrototype(self)
    }
    public class func builderWithPrototype(prototype:Pogoprotos.Networking.Requests.Messages.GetPlayerMessage) throws -> Pogoprotos.Networking.Requests.Messages.GetPlayerMessage.Builder {
      return try Pogoprotos.Networking.Requests.Messages.GetPlayerMessage.Builder().mergeFrom(prototype)
    }
    override public func encode() throws -> Dictionary<String,AnyObject> {
      guard isInitialized() else {
        throw ProtocolBuffersError.InvalidProtocolBuffer("Uninitialized Message")
      }

      let jsonMap:Dictionary<String,AnyObject> = Dictionary<String,AnyObject>()
      return jsonMap
    }
    override class public func decode(jsonMap:Dictionary<String,AnyObject>) throws -> Pogoprotos.Networking.Requests.Messages.GetPlayerMessage {
      return try Pogoprotos.Networking.Requests.Messages.GetPlayerMessage.Builder.decodeToBuilder(jsonMap).build()
    }
    override class public func fromJSON(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.GetPlayerMessage {
      return try Pogoprotos.Networking.Requests.Messages.GetPlayerMessage.Builder.fromJSONToBuilder(data).build()
    }
    override public func getDescription(indent:String) throws -> String {
      var output = ""
      output += unknownFields.getDescription(indent)
      return output
    }
    override public var hashValue:Int {
        get {
            var hashCode:Int = 7
            hashCode = (hashCode &* 31) &+  unknownFields.hashValue
            return hashCode
        }
    }


    //Meta information declaration start

    override public class func className() -> String {
        return "Pogoprotos.Networking.Requests.Messages.GetPlayerMessage"
    }
    override public func className() -> String {
        return "Pogoprotos.Networking.Requests.Messages.GetPlayerMessage"
    }
    override public func classMetaType() -> GeneratedMessage.Type {
        return Pogoprotos.Networking.Requests.Messages.GetPlayerMessage.self
    }
    //Meta information declaration end

    final public class Builder : GeneratedMessageBuilder {
      private var builderResult:Pogoprotos.Networking.Requests.Messages.GetPlayerMessage = Pogoprotos.Networking.Requests.Messages.GetPlayerMessage()
      public func getMessage() -> Pogoprotos.Networking.Requests.Messages.GetPlayerMessage {
          return builderResult
      }

      required override public init () {
         super.init()
      }
      override public var internalGetResult:GeneratedMessage {
           get {
              return builderResult
           }
      }
      override public func clear() -> Pogoprotos.Networking.Requests.Messages.GetPlayerMessage.Builder {
        builderResult = Pogoprotos.Networking.Requests.Messages.GetPlayerMessage()
        return self
      }
      override public func clone() throws -> Pogoprotos.Networking.Requests.Messages.GetPlayerMessage.Builder {
        return try Pogoprotos.Networking.Requests.Messages.GetPlayerMessage.builderWithPrototype(builderResult)
      }
      override public func build() throws -> Pogoprotos.Networking.Requests.Messages.GetPlayerMessage {
           try checkInitialized()
           return buildPartial()
      }
      public func buildPartial() -> Pogoprotos.Networking.Requests.Messages.GetPlayerMessage {
        let returnMe:Pogoprotos.Networking.Requests.Messages.GetPlayerMessage = builderResult
        return returnMe
      }
      public func mergeFrom(other:Pogoprotos.Networking.Requests.Messages.GetPlayerMessage) throws -> Pogoprotos.Networking.Requests.Messages.GetPlayerMessage.Builder {
        if other == Pogoprotos.Networking.Requests.Messages.GetPlayerMessage() {
         return self
        }
        try mergeUnknownFields(other.unknownFields)
        return self
      }
      override public func mergeFromCodedInputStream(input:CodedInputStream) throws -> Pogoprotos.Networking.Requests.Messages.GetPlayerMessage.Builder {
           return try mergeFromCodedInputStream(input, extensionRegistry:ExtensionRegistry())
      }
      override public func mergeFromCodedInputStream(input:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.GetPlayerMessage.Builder {
        let unknownFieldsBuilder:UnknownFieldSet.Builder = try UnknownFieldSet.builderWithUnknownFields(self.unknownFields)
        while (true) {
          let protobufTag = try input.readTag()
          switch protobufTag {
          case 0: 
            self.unknownFields = try unknownFieldsBuilder.build()
            return self

          default:
            if (!(try parseUnknownField(input,unknownFields:unknownFieldsBuilder, extensionRegistry:extensionRegistry, tag:protobufTag))) {
               unknownFields = try unknownFieldsBuilder.build()
               return self
            }
          }
        }
      }
      override class public func decodeToBuilder(jsonMap:Dictionary<String,AnyObject>) throws -> Pogoprotos.Networking.Requests.Messages.GetPlayerMessage.Builder {
        let resultDecodedBuilder = Pogoprotos.Networking.Requests.Messages.GetPlayerMessage.Builder()
        return resultDecodedBuilder
      }
      override class public func fromJSONToBuilder(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.GetPlayerMessage.Builder {
        let jsonData = try NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions(rawValue: 0))
        guard let jsDataCast = jsonData as? Dictionary<String,AnyObject> else {
          throw ProtocolBuffersError.InvalidProtocolBuffer("Invalid JSON data")
        }
        return try Pogoprotos.Networking.Requests.Messages.GetPlayerMessage.Builder.decodeToBuilder(jsDataCast)
      }
    }

  }

  final public class GetPlayerProfileMessage : GeneratedMessage, GeneratedMessageProtocol {
    public private(set) var hasPlayerName:Bool = false
    public private(set) var playerName:String = ""

    required public init() {
         super.init()
    }
    override public func isInitialized() -> Bool {
     return true
    }
    override public func writeToCodedOutputStream(output:CodedOutputStream) throws {
      if hasPlayerName {
        try output.writeString(1, value:playerName)
      }
      try unknownFields.writeToCodedOutputStream(output)
    }
    override public func serializedSize() -> Int32 {
      var serialize_size:Int32 = memoizedSerializedSize
      if serialize_size != -1 {
       return serialize_size
      }

      serialize_size = 0
      if hasPlayerName {
        serialize_size += playerName.computeStringSize(1)
      }
      serialize_size += unknownFields.serializedSize()
      memoizedSerializedSize = serialize_size
      return serialize_size
    }
    public class func parseArrayDelimitedFromInputStream(input:NSInputStream) throws -> Array<Pogoprotos.Networking.Requests.Messages.GetPlayerProfileMessage> {
      var mergedArray = Array<Pogoprotos.Networking.Requests.Messages.GetPlayerProfileMessage>()
      while let value = try parseFromDelimitedFromInputStream(input) {
        mergedArray += [value]
      }
      return mergedArray
    }
    public class func parseFromDelimitedFromInputStream(input:NSInputStream) throws -> Pogoprotos.Networking.Requests.Messages.GetPlayerProfileMessage? {
      return try Pogoprotos.Networking.Requests.Messages.GetPlayerProfileMessage.Builder().mergeDelimitedFromInputStream(input)?.build()
    }
    public class func parseFromData(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.GetPlayerProfileMessage {
      return try Pogoprotos.Networking.Requests.Messages.GetPlayerProfileMessage.Builder().mergeFromData(data, extensionRegistry:Pogoprotos.Networking.Requests.Messages.PogoprotosNetworkingRequestsMessagesRoot.sharedInstance.extensionRegistry).build()
    }
    public class func parseFromData(data:NSData, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.GetPlayerProfileMessage {
      return try Pogoprotos.Networking.Requests.Messages.GetPlayerProfileMessage.Builder().mergeFromData(data, extensionRegistry:extensionRegistry).build()
    }
    public class func parseFromInputStream(input:NSInputStream) throws -> Pogoprotos.Networking.Requests.Messages.GetPlayerProfileMessage {
      return try Pogoprotos.Networking.Requests.Messages.GetPlayerProfileMessage.Builder().mergeFromInputStream(input).build()
    }
    public class func parseFromInputStream(input:NSInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.GetPlayerProfileMessage {
      return try Pogoprotos.Networking.Requests.Messages.GetPlayerProfileMessage.Builder().mergeFromInputStream(input, extensionRegistry:extensionRegistry).build()
    }
    public class func parseFromCodedInputStream(input:CodedInputStream) throws -> Pogoprotos.Networking.Requests.Messages.GetPlayerProfileMessage {
      return try Pogoprotos.Networking.Requests.Messages.GetPlayerProfileMessage.Builder().mergeFromCodedInputStream(input).build()
    }
    public class func parseFromCodedInputStream(input:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.GetPlayerProfileMessage {
      return try Pogoprotos.Networking.Requests.Messages.GetPlayerProfileMessage.Builder().mergeFromCodedInputStream(input, extensionRegistry:extensionRegistry).build()
    }
    public class func getBuilder() -> Pogoprotos.Networking.Requests.Messages.GetPlayerProfileMessage.Builder {
      return Pogoprotos.Networking.Requests.Messages.GetPlayerProfileMessage.classBuilder() as! Pogoprotos.Networking.Requests.Messages.GetPlayerProfileMessage.Builder
    }
    public func getBuilder() -> Pogoprotos.Networking.Requests.Messages.GetPlayerProfileMessage.Builder {
      return classBuilder() as! Pogoprotos.Networking.Requests.Messages.GetPlayerProfileMessage.Builder
    }
    override public class func classBuilder() -> MessageBuilder {
      return Pogoprotos.Networking.Requests.Messages.GetPlayerProfileMessage.Builder()
    }
    override public func classBuilder() -> MessageBuilder {
      return Pogoprotos.Networking.Requests.Messages.GetPlayerProfileMessage.Builder()
    }
    public func toBuilder() throws -> Pogoprotos.Networking.Requests.Messages.GetPlayerProfileMessage.Builder {
      return try Pogoprotos.Networking.Requests.Messages.GetPlayerProfileMessage.builderWithPrototype(self)
    }
    public class func builderWithPrototype(prototype:Pogoprotos.Networking.Requests.Messages.GetPlayerProfileMessage) throws -> Pogoprotos.Networking.Requests.Messages.GetPlayerProfileMessage.Builder {
      return try Pogoprotos.Networking.Requests.Messages.GetPlayerProfileMessage.Builder().mergeFrom(prototype)
    }
    override public func encode() throws -> Dictionary<String,AnyObject> {
      guard isInitialized() else {
        throw ProtocolBuffersError.InvalidProtocolBuffer("Uninitialized Message")
      }

      var jsonMap:Dictionary<String,AnyObject> = Dictionary<String,AnyObject>()
      if hasPlayerName {
        jsonMap["playerName"] = playerName
      }
      return jsonMap
    }
    override class public func decode(jsonMap:Dictionary<String,AnyObject>) throws -> Pogoprotos.Networking.Requests.Messages.GetPlayerProfileMessage {
      return try Pogoprotos.Networking.Requests.Messages.GetPlayerProfileMessage.Builder.decodeToBuilder(jsonMap).build()
    }
    override class public func fromJSON(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.GetPlayerProfileMessage {
      return try Pogoprotos.Networking.Requests.Messages.GetPlayerProfileMessage.Builder.fromJSONToBuilder(data).build()
    }
    override public func getDescription(indent:String) throws -> String {
      var output = ""
      if hasPlayerName {
        output += "\(indent) playerName: \(playerName) \n"
      }
      output += unknownFields.getDescription(indent)
      return output
    }
    override public var hashValue:Int {
        get {
            var hashCode:Int = 7
            if hasPlayerName {
               hashCode = (hashCode &* 31) &+ playerName.hashValue
            }
            hashCode = (hashCode &* 31) &+  unknownFields.hashValue
            return hashCode
        }
    }


    //Meta information declaration start

    override public class func className() -> String {
        return "Pogoprotos.Networking.Requests.Messages.GetPlayerProfileMessage"
    }
    override public func className() -> String {
        return "Pogoprotos.Networking.Requests.Messages.GetPlayerProfileMessage"
    }
    override public func classMetaType() -> GeneratedMessage.Type {
        return Pogoprotos.Networking.Requests.Messages.GetPlayerProfileMessage.self
    }
    //Meta information declaration end

    final public class Builder : GeneratedMessageBuilder {
      private var builderResult:Pogoprotos.Networking.Requests.Messages.GetPlayerProfileMessage = Pogoprotos.Networking.Requests.Messages.GetPlayerProfileMessage()
      public func getMessage() -> Pogoprotos.Networking.Requests.Messages.GetPlayerProfileMessage {
          return builderResult
      }

      required override public init () {
         super.init()
      }
      public var hasPlayerName:Bool {
           get {
                return builderResult.hasPlayerName
           }
      }
      public var playerName:String {
           get {
                return builderResult.playerName
           }
           set (value) {
               builderResult.hasPlayerName = true
               builderResult.playerName = value
           }
      }
      public func setPlayerName(value:String) -> Pogoprotos.Networking.Requests.Messages.GetPlayerProfileMessage.Builder {
        self.playerName = value
        return self
      }
      public func clearPlayerName() -> Pogoprotos.Networking.Requests.Messages.GetPlayerProfileMessage.Builder{
           builderResult.hasPlayerName = false
           builderResult.playerName = ""
           return self
      }
      override public var internalGetResult:GeneratedMessage {
           get {
              return builderResult
           }
      }
      override public func clear() -> Pogoprotos.Networking.Requests.Messages.GetPlayerProfileMessage.Builder {
        builderResult = Pogoprotos.Networking.Requests.Messages.GetPlayerProfileMessage()
        return self
      }
      override public func clone() throws -> Pogoprotos.Networking.Requests.Messages.GetPlayerProfileMessage.Builder {
        return try Pogoprotos.Networking.Requests.Messages.GetPlayerProfileMessage.builderWithPrototype(builderResult)
      }
      override public func build() throws -> Pogoprotos.Networking.Requests.Messages.GetPlayerProfileMessage {
           try checkInitialized()
           return buildPartial()
      }
      public func buildPartial() -> Pogoprotos.Networking.Requests.Messages.GetPlayerProfileMessage {
        let returnMe:Pogoprotos.Networking.Requests.Messages.GetPlayerProfileMessage = builderResult
        return returnMe
      }
      public func mergeFrom(other:Pogoprotos.Networking.Requests.Messages.GetPlayerProfileMessage) throws -> Pogoprotos.Networking.Requests.Messages.GetPlayerProfileMessage.Builder {
        if other == Pogoprotos.Networking.Requests.Messages.GetPlayerProfileMessage() {
         return self
        }
        if other.hasPlayerName {
             playerName = other.playerName
        }
        try mergeUnknownFields(other.unknownFields)
        return self
      }
      override public func mergeFromCodedInputStream(input:CodedInputStream) throws -> Pogoprotos.Networking.Requests.Messages.GetPlayerProfileMessage.Builder {
           return try mergeFromCodedInputStream(input, extensionRegistry:ExtensionRegistry())
      }
      override public func mergeFromCodedInputStream(input:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.GetPlayerProfileMessage.Builder {
        let unknownFieldsBuilder:UnknownFieldSet.Builder = try UnknownFieldSet.builderWithUnknownFields(self.unknownFields)
        while (true) {
          let protobufTag = try input.readTag()
          switch protobufTag {
          case 0: 
            self.unknownFields = try unknownFieldsBuilder.build()
            return self

          case 10:
            playerName = try input.readString()

          default:
            if (!(try parseUnknownField(input,unknownFields:unknownFieldsBuilder, extensionRegistry:extensionRegistry, tag:protobufTag))) {
               unknownFields = try unknownFieldsBuilder.build()
               return self
            }
          }
        }
      }
      override class public func decodeToBuilder(jsonMap:Dictionary<String,AnyObject>) throws -> Pogoprotos.Networking.Requests.Messages.GetPlayerProfileMessage.Builder {
        let resultDecodedBuilder = Pogoprotos.Networking.Requests.Messages.GetPlayerProfileMessage.Builder()
        if let jsonValuePlayerName = jsonMap["playerName"] as? String {
          resultDecodedBuilder.playerName = jsonValuePlayerName
        }
        return resultDecodedBuilder
      }
      override class public func fromJSONToBuilder(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.GetPlayerProfileMessage.Builder {
        let jsonData = try NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions(rawValue: 0))
        guard let jsDataCast = jsonData as? Dictionary<String,AnyObject> else {
          throw ProtocolBuffersError.InvalidProtocolBuffer("Invalid JSON data")
        }
        return try Pogoprotos.Networking.Requests.Messages.GetPlayerProfileMessage.Builder.decodeToBuilder(jsDataCast)
      }
    }

  }

  // No message needed.
  final public class GetSuggestedCodenamesMessage : GeneratedMessage, GeneratedMessageProtocol {
    required public init() {
         super.init()
    }
    override public func isInitialized() -> Bool {
     return true
    }
    override public func writeToCodedOutputStream(output:CodedOutputStream) throws {
      try unknownFields.writeToCodedOutputStream(output)
    }
    override public func serializedSize() -> Int32 {
      var serialize_size:Int32 = memoizedSerializedSize
      if serialize_size != -1 {
       return serialize_size
      }

      serialize_size = 0
      serialize_size += unknownFields.serializedSize()
      memoizedSerializedSize = serialize_size
      return serialize_size
    }
    public class func parseArrayDelimitedFromInputStream(input:NSInputStream) throws -> Array<Pogoprotos.Networking.Requests.Messages.GetSuggestedCodenamesMessage> {
      var mergedArray = Array<Pogoprotos.Networking.Requests.Messages.GetSuggestedCodenamesMessage>()
      while let value = try parseFromDelimitedFromInputStream(input) {
        mergedArray += [value]
      }
      return mergedArray
    }
    public class func parseFromDelimitedFromInputStream(input:NSInputStream) throws -> Pogoprotos.Networking.Requests.Messages.GetSuggestedCodenamesMessage? {
      return try Pogoprotos.Networking.Requests.Messages.GetSuggestedCodenamesMessage.Builder().mergeDelimitedFromInputStream(input)?.build()
    }
    public class func parseFromData(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.GetSuggestedCodenamesMessage {
      return try Pogoprotos.Networking.Requests.Messages.GetSuggestedCodenamesMessage.Builder().mergeFromData(data, extensionRegistry:Pogoprotos.Networking.Requests.Messages.PogoprotosNetworkingRequestsMessagesRoot.sharedInstance.extensionRegistry).build()
    }
    public class func parseFromData(data:NSData, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.GetSuggestedCodenamesMessage {
      return try Pogoprotos.Networking.Requests.Messages.GetSuggestedCodenamesMessage.Builder().mergeFromData(data, extensionRegistry:extensionRegistry).build()
    }
    public class func parseFromInputStream(input:NSInputStream) throws -> Pogoprotos.Networking.Requests.Messages.GetSuggestedCodenamesMessage {
      return try Pogoprotos.Networking.Requests.Messages.GetSuggestedCodenamesMessage.Builder().mergeFromInputStream(input).build()
    }
    public class func parseFromInputStream(input:NSInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.GetSuggestedCodenamesMessage {
      return try Pogoprotos.Networking.Requests.Messages.GetSuggestedCodenamesMessage.Builder().mergeFromInputStream(input, extensionRegistry:extensionRegistry).build()
    }
    public class func parseFromCodedInputStream(input:CodedInputStream) throws -> Pogoprotos.Networking.Requests.Messages.GetSuggestedCodenamesMessage {
      return try Pogoprotos.Networking.Requests.Messages.GetSuggestedCodenamesMessage.Builder().mergeFromCodedInputStream(input).build()
    }
    public class func parseFromCodedInputStream(input:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.GetSuggestedCodenamesMessage {
      return try Pogoprotos.Networking.Requests.Messages.GetSuggestedCodenamesMessage.Builder().mergeFromCodedInputStream(input, extensionRegistry:extensionRegistry).build()
    }
    public class func getBuilder() -> Pogoprotos.Networking.Requests.Messages.GetSuggestedCodenamesMessage.Builder {
      return Pogoprotos.Networking.Requests.Messages.GetSuggestedCodenamesMessage.classBuilder() as! Pogoprotos.Networking.Requests.Messages.GetSuggestedCodenamesMessage.Builder
    }
    public func getBuilder() -> Pogoprotos.Networking.Requests.Messages.GetSuggestedCodenamesMessage.Builder {
      return classBuilder() as! Pogoprotos.Networking.Requests.Messages.GetSuggestedCodenamesMessage.Builder
    }
    override public class func classBuilder() -> MessageBuilder {
      return Pogoprotos.Networking.Requests.Messages.GetSuggestedCodenamesMessage.Builder()
    }
    override public func classBuilder() -> MessageBuilder {
      return Pogoprotos.Networking.Requests.Messages.GetSuggestedCodenamesMessage.Builder()
    }
    public func toBuilder() throws -> Pogoprotos.Networking.Requests.Messages.GetSuggestedCodenamesMessage.Builder {
      return try Pogoprotos.Networking.Requests.Messages.GetSuggestedCodenamesMessage.builderWithPrototype(self)
    }
    public class func builderWithPrototype(prototype:Pogoprotos.Networking.Requests.Messages.GetSuggestedCodenamesMessage) throws -> Pogoprotos.Networking.Requests.Messages.GetSuggestedCodenamesMessage.Builder {
      return try Pogoprotos.Networking.Requests.Messages.GetSuggestedCodenamesMessage.Builder().mergeFrom(prototype)
    }
    override public func encode() throws -> Dictionary<String,AnyObject> {
      guard isInitialized() else {
        throw ProtocolBuffersError.InvalidProtocolBuffer("Uninitialized Message")
      }

      let jsonMap:Dictionary<String,AnyObject> = Dictionary<String,AnyObject>()
      return jsonMap
    }
    override class public func decode(jsonMap:Dictionary<String,AnyObject>) throws -> Pogoprotos.Networking.Requests.Messages.GetSuggestedCodenamesMessage {
      return try Pogoprotos.Networking.Requests.Messages.GetSuggestedCodenamesMessage.Builder.decodeToBuilder(jsonMap).build()
    }
    override class public func fromJSON(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.GetSuggestedCodenamesMessage {
      return try Pogoprotos.Networking.Requests.Messages.GetSuggestedCodenamesMessage.Builder.fromJSONToBuilder(data).build()
    }
    override public func getDescription(indent:String) throws -> String {
      var output = ""
      output += unknownFields.getDescription(indent)
      return output
    }
    override public var hashValue:Int {
        get {
            var hashCode:Int = 7
            hashCode = (hashCode &* 31) &+  unknownFields.hashValue
            return hashCode
        }
    }


    //Meta information declaration start

    override public class func className() -> String {
        return "Pogoprotos.Networking.Requests.Messages.GetSuggestedCodenamesMessage"
    }
    override public func className() -> String {
        return "Pogoprotos.Networking.Requests.Messages.GetSuggestedCodenamesMessage"
    }
    override public func classMetaType() -> GeneratedMessage.Type {
        return Pogoprotos.Networking.Requests.Messages.GetSuggestedCodenamesMessage.self
    }
    //Meta information declaration end

    final public class Builder : GeneratedMessageBuilder {
      private var builderResult:Pogoprotos.Networking.Requests.Messages.GetSuggestedCodenamesMessage = Pogoprotos.Networking.Requests.Messages.GetSuggestedCodenamesMessage()
      public func getMessage() -> Pogoprotos.Networking.Requests.Messages.GetSuggestedCodenamesMessage {
          return builderResult
      }

      required override public init () {
         super.init()
      }
      override public var internalGetResult:GeneratedMessage {
           get {
              return builderResult
           }
      }
      override public func clear() -> Pogoprotos.Networking.Requests.Messages.GetSuggestedCodenamesMessage.Builder {
        builderResult = Pogoprotos.Networking.Requests.Messages.GetSuggestedCodenamesMessage()
        return self
      }
      override public func clone() throws -> Pogoprotos.Networking.Requests.Messages.GetSuggestedCodenamesMessage.Builder {
        return try Pogoprotos.Networking.Requests.Messages.GetSuggestedCodenamesMessage.builderWithPrototype(builderResult)
      }
      override public func build() throws -> Pogoprotos.Networking.Requests.Messages.GetSuggestedCodenamesMessage {
           try checkInitialized()
           return buildPartial()
      }
      public func buildPartial() -> Pogoprotos.Networking.Requests.Messages.GetSuggestedCodenamesMessage {
        let returnMe:Pogoprotos.Networking.Requests.Messages.GetSuggestedCodenamesMessage = builderResult
        return returnMe
      }
      public func mergeFrom(other:Pogoprotos.Networking.Requests.Messages.GetSuggestedCodenamesMessage) throws -> Pogoprotos.Networking.Requests.Messages.GetSuggestedCodenamesMessage.Builder {
        if other == Pogoprotos.Networking.Requests.Messages.GetSuggestedCodenamesMessage() {
         return self
        }
        try mergeUnknownFields(other.unknownFields)
        return self
      }
      override public func mergeFromCodedInputStream(input:CodedInputStream) throws -> Pogoprotos.Networking.Requests.Messages.GetSuggestedCodenamesMessage.Builder {
           return try mergeFromCodedInputStream(input, extensionRegistry:ExtensionRegistry())
      }
      override public func mergeFromCodedInputStream(input:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.GetSuggestedCodenamesMessage.Builder {
        let unknownFieldsBuilder:UnknownFieldSet.Builder = try UnknownFieldSet.builderWithUnknownFields(self.unknownFields)
        while (true) {
          let protobufTag = try input.readTag()
          switch protobufTag {
          case 0: 
            self.unknownFields = try unknownFieldsBuilder.build()
            return self

          default:
            if (!(try parseUnknownField(input,unknownFields:unknownFieldsBuilder, extensionRegistry:extensionRegistry, tag:protobufTag))) {
               unknownFields = try unknownFieldsBuilder.build()
               return self
            }
          }
        }
      }
      override class public func decodeToBuilder(jsonMap:Dictionary<String,AnyObject>) throws -> Pogoprotos.Networking.Requests.Messages.GetSuggestedCodenamesMessage.Builder {
        let resultDecodedBuilder = Pogoprotos.Networking.Requests.Messages.GetSuggestedCodenamesMessage.Builder()
        return resultDecodedBuilder
      }
      override class public func fromJSONToBuilder(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.GetSuggestedCodenamesMessage.Builder {
        let jsonData = try NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions(rawValue: 0))
        guard let jsDataCast = jsonData as? Dictionary<String,AnyObject> else {
          throw ProtocolBuffersError.InvalidProtocolBuffer("Invalid JSON data")
        }
        return try Pogoprotos.Networking.Requests.Messages.GetSuggestedCodenamesMessage.Builder.decodeToBuilder(jsDataCast)
      }
    }

  }

  final public class IncenseEncounterMessage : GeneratedMessage, GeneratedMessageProtocol {
    public private(set) var hasEncounterId:Bool = false
    public private(set) var encounterId:UInt64 = UInt64(0)

    public private(set) var hasEncounterLocation:Bool = false
    public private(set) var encounterLocation:String = ""

    required public init() {
         super.init()
    }
    override public func isInitialized() -> Bool {
     return true
    }
    override public func writeToCodedOutputStream(output:CodedOutputStream) throws {
      if hasEncounterId {
        try output.writeUInt64(1, value:encounterId)
      }
      if hasEncounterLocation {
        try output.writeString(2, value:encounterLocation)
      }
      try unknownFields.writeToCodedOutputStream(output)
    }
    override public func serializedSize() -> Int32 {
      var serialize_size:Int32 = memoizedSerializedSize
      if serialize_size != -1 {
       return serialize_size
      }

      serialize_size = 0
      if hasEncounterId {
        serialize_size += encounterId.computeUInt64Size(1)
      }
      if hasEncounterLocation {
        serialize_size += encounterLocation.computeStringSize(2)
      }
      serialize_size += unknownFields.serializedSize()
      memoizedSerializedSize = serialize_size
      return serialize_size
    }
    public class func parseArrayDelimitedFromInputStream(input:NSInputStream) throws -> Array<Pogoprotos.Networking.Requests.Messages.IncenseEncounterMessage> {
      var mergedArray = Array<Pogoprotos.Networking.Requests.Messages.IncenseEncounterMessage>()
      while let value = try parseFromDelimitedFromInputStream(input) {
        mergedArray += [value]
      }
      return mergedArray
    }
    public class func parseFromDelimitedFromInputStream(input:NSInputStream) throws -> Pogoprotos.Networking.Requests.Messages.IncenseEncounterMessage? {
      return try Pogoprotos.Networking.Requests.Messages.IncenseEncounterMessage.Builder().mergeDelimitedFromInputStream(input)?.build()
    }
    public class func parseFromData(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.IncenseEncounterMessage {
      return try Pogoprotos.Networking.Requests.Messages.IncenseEncounterMessage.Builder().mergeFromData(data, extensionRegistry:Pogoprotos.Networking.Requests.Messages.PogoprotosNetworkingRequestsMessagesRoot.sharedInstance.extensionRegistry).build()
    }
    public class func parseFromData(data:NSData, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.IncenseEncounterMessage {
      return try Pogoprotos.Networking.Requests.Messages.IncenseEncounterMessage.Builder().mergeFromData(data, extensionRegistry:extensionRegistry).build()
    }
    public class func parseFromInputStream(input:NSInputStream) throws -> Pogoprotos.Networking.Requests.Messages.IncenseEncounterMessage {
      return try Pogoprotos.Networking.Requests.Messages.IncenseEncounterMessage.Builder().mergeFromInputStream(input).build()
    }
    public class func parseFromInputStream(input:NSInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.IncenseEncounterMessage {
      return try Pogoprotos.Networking.Requests.Messages.IncenseEncounterMessage.Builder().mergeFromInputStream(input, extensionRegistry:extensionRegistry).build()
    }
    public class func parseFromCodedInputStream(input:CodedInputStream) throws -> Pogoprotos.Networking.Requests.Messages.IncenseEncounterMessage {
      return try Pogoprotos.Networking.Requests.Messages.IncenseEncounterMessage.Builder().mergeFromCodedInputStream(input).build()
    }
    public class func parseFromCodedInputStream(input:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.IncenseEncounterMessage {
      return try Pogoprotos.Networking.Requests.Messages.IncenseEncounterMessage.Builder().mergeFromCodedInputStream(input, extensionRegistry:extensionRegistry).build()
    }
    public class func getBuilder() -> Pogoprotos.Networking.Requests.Messages.IncenseEncounterMessage.Builder {
      return Pogoprotos.Networking.Requests.Messages.IncenseEncounterMessage.classBuilder() as! Pogoprotos.Networking.Requests.Messages.IncenseEncounterMessage.Builder
    }
    public func getBuilder() -> Pogoprotos.Networking.Requests.Messages.IncenseEncounterMessage.Builder {
      return classBuilder() as! Pogoprotos.Networking.Requests.Messages.IncenseEncounterMessage.Builder
    }
    override public class func classBuilder() -> MessageBuilder {
      return Pogoprotos.Networking.Requests.Messages.IncenseEncounterMessage.Builder()
    }
    override public func classBuilder() -> MessageBuilder {
      return Pogoprotos.Networking.Requests.Messages.IncenseEncounterMessage.Builder()
    }
    public func toBuilder() throws -> Pogoprotos.Networking.Requests.Messages.IncenseEncounterMessage.Builder {
      return try Pogoprotos.Networking.Requests.Messages.IncenseEncounterMessage.builderWithPrototype(self)
    }
    public class func builderWithPrototype(prototype:Pogoprotos.Networking.Requests.Messages.IncenseEncounterMessage) throws -> Pogoprotos.Networking.Requests.Messages.IncenseEncounterMessage.Builder {
      return try Pogoprotos.Networking.Requests.Messages.IncenseEncounterMessage.Builder().mergeFrom(prototype)
    }
    override public func encode() throws -> Dictionary<String,AnyObject> {
      guard isInitialized() else {
        throw ProtocolBuffersError.InvalidProtocolBuffer("Uninitialized Message")
      }

      var jsonMap:Dictionary<String,AnyObject> = Dictionary<String,AnyObject>()
      if hasEncounterId {
        jsonMap["encounterId"] = "\(encounterId)"
      }
      if hasEncounterLocation {
        jsonMap["encounterLocation"] = encounterLocation
      }
      return jsonMap
    }
    override class public func decode(jsonMap:Dictionary<String,AnyObject>) throws -> Pogoprotos.Networking.Requests.Messages.IncenseEncounterMessage {
      return try Pogoprotos.Networking.Requests.Messages.IncenseEncounterMessage.Builder.decodeToBuilder(jsonMap).build()
    }
    override class public func fromJSON(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.IncenseEncounterMessage {
      return try Pogoprotos.Networking.Requests.Messages.IncenseEncounterMessage.Builder.fromJSONToBuilder(data).build()
    }
    override public func getDescription(indent:String) throws -> String {
      var output = ""
      if hasEncounterId {
        output += "\(indent) encounterId: \(encounterId) \n"
      }
      if hasEncounterLocation {
        output += "\(indent) encounterLocation: \(encounterLocation) \n"
      }
      output += unknownFields.getDescription(indent)
      return output
    }
    override public var hashValue:Int {
        get {
            var hashCode:Int = 7
            if hasEncounterId {
               hashCode = (hashCode &* 31) &+ encounterId.hashValue
            }
            if hasEncounterLocation {
               hashCode = (hashCode &* 31) &+ encounterLocation.hashValue
            }
            hashCode = (hashCode &* 31) &+  unknownFields.hashValue
            return hashCode
        }
    }


    //Meta information declaration start

    override public class func className() -> String {
        return "Pogoprotos.Networking.Requests.Messages.IncenseEncounterMessage"
    }
    override public func className() -> String {
        return "Pogoprotos.Networking.Requests.Messages.IncenseEncounterMessage"
    }
    override public func classMetaType() -> GeneratedMessage.Type {
        return Pogoprotos.Networking.Requests.Messages.IncenseEncounterMessage.self
    }
    //Meta information declaration end

    final public class Builder : GeneratedMessageBuilder {
      private var builderResult:Pogoprotos.Networking.Requests.Messages.IncenseEncounterMessage = Pogoprotos.Networking.Requests.Messages.IncenseEncounterMessage()
      public func getMessage() -> Pogoprotos.Networking.Requests.Messages.IncenseEncounterMessage {
          return builderResult
      }

      required override public init () {
         super.init()
      }
      public var hasEncounterId:Bool {
           get {
                return builderResult.hasEncounterId
           }
      }
      public var encounterId:UInt64 {
           get {
                return builderResult.encounterId
           }
           set (value) {
               builderResult.hasEncounterId = true
               builderResult.encounterId = value
           }
      }
      public func setEncounterId(value:UInt64) -> Pogoprotos.Networking.Requests.Messages.IncenseEncounterMessage.Builder {
        self.encounterId = value
        return self
      }
      public func clearEncounterId() -> Pogoprotos.Networking.Requests.Messages.IncenseEncounterMessage.Builder{
           builderResult.hasEncounterId = false
           builderResult.encounterId = UInt64(0)
           return self
      }
      public var hasEncounterLocation:Bool {
           get {
                return builderResult.hasEncounterLocation
           }
      }
      public var encounterLocation:String {
           get {
                return builderResult.encounterLocation
           }
           set (value) {
               builderResult.hasEncounterLocation = true
               builderResult.encounterLocation = value
           }
      }
      public func setEncounterLocation(value:String) -> Pogoprotos.Networking.Requests.Messages.IncenseEncounterMessage.Builder {
        self.encounterLocation = value
        return self
      }
      public func clearEncounterLocation() -> Pogoprotos.Networking.Requests.Messages.IncenseEncounterMessage.Builder{
           builderResult.hasEncounterLocation = false
           builderResult.encounterLocation = ""
           return self
      }
      override public var internalGetResult:GeneratedMessage {
           get {
              return builderResult
           }
      }
      override public func clear() -> Pogoprotos.Networking.Requests.Messages.IncenseEncounterMessage.Builder {
        builderResult = Pogoprotos.Networking.Requests.Messages.IncenseEncounterMessage()
        return self
      }
      override public func clone() throws -> Pogoprotos.Networking.Requests.Messages.IncenseEncounterMessage.Builder {
        return try Pogoprotos.Networking.Requests.Messages.IncenseEncounterMessage.builderWithPrototype(builderResult)
      }
      override public func build() throws -> Pogoprotos.Networking.Requests.Messages.IncenseEncounterMessage {
           try checkInitialized()
           return buildPartial()
      }
      public func buildPartial() -> Pogoprotos.Networking.Requests.Messages.IncenseEncounterMessage {
        let returnMe:Pogoprotos.Networking.Requests.Messages.IncenseEncounterMessage = builderResult
        return returnMe
      }
      public func mergeFrom(other:Pogoprotos.Networking.Requests.Messages.IncenseEncounterMessage) throws -> Pogoprotos.Networking.Requests.Messages.IncenseEncounterMessage.Builder {
        if other == Pogoprotos.Networking.Requests.Messages.IncenseEncounterMessage() {
         return self
        }
        if other.hasEncounterId {
             encounterId = other.encounterId
        }
        if other.hasEncounterLocation {
             encounterLocation = other.encounterLocation
        }
        try mergeUnknownFields(other.unknownFields)
        return self
      }
      override public func mergeFromCodedInputStream(input:CodedInputStream) throws -> Pogoprotos.Networking.Requests.Messages.IncenseEncounterMessage.Builder {
           return try mergeFromCodedInputStream(input, extensionRegistry:ExtensionRegistry())
      }
      override public func mergeFromCodedInputStream(input:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.IncenseEncounterMessage.Builder {
        let unknownFieldsBuilder:UnknownFieldSet.Builder = try UnknownFieldSet.builderWithUnknownFields(self.unknownFields)
        while (true) {
          let protobufTag = try input.readTag()
          switch protobufTag {
          case 0: 
            self.unknownFields = try unknownFieldsBuilder.build()
            return self

          case 8:
            encounterId = try input.readUInt64()

          case 18:
            encounterLocation = try input.readString()

          default:
            if (!(try parseUnknownField(input,unknownFields:unknownFieldsBuilder, extensionRegistry:extensionRegistry, tag:protobufTag))) {
               unknownFields = try unknownFieldsBuilder.build()
               return self
            }
          }
        }
      }
      override class public func decodeToBuilder(jsonMap:Dictionary<String,AnyObject>) throws -> Pogoprotos.Networking.Requests.Messages.IncenseEncounterMessage.Builder {
        let resultDecodedBuilder = Pogoprotos.Networking.Requests.Messages.IncenseEncounterMessage.Builder()
        if let jsonValueEncounterId = jsonMap["encounterId"] as? String {
          resultDecodedBuilder.encounterId = UInt64(jsonValueEncounterId)!
        }
        if let jsonValueEncounterLocation = jsonMap["encounterLocation"] as? String {
          resultDecodedBuilder.encounterLocation = jsonValueEncounterLocation
        }
        return resultDecodedBuilder
      }
      override class public func fromJSONToBuilder(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.IncenseEncounterMessage.Builder {
        let jsonData = try NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions(rawValue: 0))
        guard let jsDataCast = jsonData as? Dictionary<String,AnyObject> else {
          throw ProtocolBuffersError.InvalidProtocolBuffer("Invalid JSON data")
        }
        return try Pogoprotos.Networking.Requests.Messages.IncenseEncounterMessage.Builder.decodeToBuilder(jsDataCast)
      }
    }

  }

  final public class LevelUpRewardsMessage : GeneratedMessage, GeneratedMessageProtocol {
    public private(set) var hasLevel:Bool = false
    public private(set) var level:Int32 = Int32(0)

    required public init() {
         super.init()
    }
    override public func isInitialized() -> Bool {
     return true
    }
    override public func writeToCodedOutputStream(output:CodedOutputStream) throws {
      if hasLevel {
        try output.writeInt32(1, value:level)
      }
      try unknownFields.writeToCodedOutputStream(output)
    }
    override public func serializedSize() -> Int32 {
      var serialize_size:Int32 = memoizedSerializedSize
      if serialize_size != -1 {
       return serialize_size
      }

      serialize_size = 0
      if hasLevel {
        serialize_size += level.computeInt32Size(1)
      }
      serialize_size += unknownFields.serializedSize()
      memoizedSerializedSize = serialize_size
      return serialize_size
    }
    public class func parseArrayDelimitedFromInputStream(input:NSInputStream) throws -> Array<Pogoprotos.Networking.Requests.Messages.LevelUpRewardsMessage> {
      var mergedArray = Array<Pogoprotos.Networking.Requests.Messages.LevelUpRewardsMessage>()
      while let value = try parseFromDelimitedFromInputStream(input) {
        mergedArray += [value]
      }
      return mergedArray
    }
    public class func parseFromDelimitedFromInputStream(input:NSInputStream) throws -> Pogoprotos.Networking.Requests.Messages.LevelUpRewardsMessage? {
      return try Pogoprotos.Networking.Requests.Messages.LevelUpRewardsMessage.Builder().mergeDelimitedFromInputStream(input)?.build()
    }
    public class func parseFromData(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.LevelUpRewardsMessage {
      return try Pogoprotos.Networking.Requests.Messages.LevelUpRewardsMessage.Builder().mergeFromData(data, extensionRegistry:Pogoprotos.Networking.Requests.Messages.PogoprotosNetworkingRequestsMessagesRoot.sharedInstance.extensionRegistry).build()
    }
    public class func parseFromData(data:NSData, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.LevelUpRewardsMessage {
      return try Pogoprotos.Networking.Requests.Messages.LevelUpRewardsMessage.Builder().mergeFromData(data, extensionRegistry:extensionRegistry).build()
    }
    public class func parseFromInputStream(input:NSInputStream) throws -> Pogoprotos.Networking.Requests.Messages.LevelUpRewardsMessage {
      return try Pogoprotos.Networking.Requests.Messages.LevelUpRewardsMessage.Builder().mergeFromInputStream(input).build()
    }
    public class func parseFromInputStream(input:NSInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.LevelUpRewardsMessage {
      return try Pogoprotos.Networking.Requests.Messages.LevelUpRewardsMessage.Builder().mergeFromInputStream(input, extensionRegistry:extensionRegistry).build()
    }
    public class func parseFromCodedInputStream(input:CodedInputStream) throws -> Pogoprotos.Networking.Requests.Messages.LevelUpRewardsMessage {
      return try Pogoprotos.Networking.Requests.Messages.LevelUpRewardsMessage.Builder().mergeFromCodedInputStream(input).build()
    }
    public class func parseFromCodedInputStream(input:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.LevelUpRewardsMessage {
      return try Pogoprotos.Networking.Requests.Messages.LevelUpRewardsMessage.Builder().mergeFromCodedInputStream(input, extensionRegistry:extensionRegistry).build()
    }
    public class func getBuilder() -> Pogoprotos.Networking.Requests.Messages.LevelUpRewardsMessage.Builder {
      return Pogoprotos.Networking.Requests.Messages.LevelUpRewardsMessage.classBuilder() as! Pogoprotos.Networking.Requests.Messages.LevelUpRewardsMessage.Builder
    }
    public func getBuilder() -> Pogoprotos.Networking.Requests.Messages.LevelUpRewardsMessage.Builder {
      return classBuilder() as! Pogoprotos.Networking.Requests.Messages.LevelUpRewardsMessage.Builder
    }
    override public class func classBuilder() -> MessageBuilder {
      return Pogoprotos.Networking.Requests.Messages.LevelUpRewardsMessage.Builder()
    }
    override public func classBuilder() -> MessageBuilder {
      return Pogoprotos.Networking.Requests.Messages.LevelUpRewardsMessage.Builder()
    }
    public func toBuilder() throws -> Pogoprotos.Networking.Requests.Messages.LevelUpRewardsMessage.Builder {
      return try Pogoprotos.Networking.Requests.Messages.LevelUpRewardsMessage.builderWithPrototype(self)
    }
    public class func builderWithPrototype(prototype:Pogoprotos.Networking.Requests.Messages.LevelUpRewardsMessage) throws -> Pogoprotos.Networking.Requests.Messages.LevelUpRewardsMessage.Builder {
      return try Pogoprotos.Networking.Requests.Messages.LevelUpRewardsMessage.Builder().mergeFrom(prototype)
    }
    override public func encode() throws -> Dictionary<String,AnyObject> {
      guard isInitialized() else {
        throw ProtocolBuffersError.InvalidProtocolBuffer("Uninitialized Message")
      }

      var jsonMap:Dictionary<String,AnyObject> = Dictionary<String,AnyObject>()
      if hasLevel {
        jsonMap["level"] = NSNumber(int:level)
      }
      return jsonMap
    }
    override class public func decode(jsonMap:Dictionary<String,AnyObject>) throws -> Pogoprotos.Networking.Requests.Messages.LevelUpRewardsMessage {
      return try Pogoprotos.Networking.Requests.Messages.LevelUpRewardsMessage.Builder.decodeToBuilder(jsonMap).build()
    }
    override class public func fromJSON(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.LevelUpRewardsMessage {
      return try Pogoprotos.Networking.Requests.Messages.LevelUpRewardsMessage.Builder.fromJSONToBuilder(data).build()
    }
    override public func getDescription(indent:String) throws -> String {
      var output = ""
      if hasLevel {
        output += "\(indent) level: \(level) \n"
      }
      output += unknownFields.getDescription(indent)
      return output
    }
    override public var hashValue:Int {
        get {
            var hashCode:Int = 7
            if hasLevel {
               hashCode = (hashCode &* 31) &+ level.hashValue
            }
            hashCode = (hashCode &* 31) &+  unknownFields.hashValue
            return hashCode
        }
    }


    //Meta information declaration start

    override public class func className() -> String {
        return "Pogoprotos.Networking.Requests.Messages.LevelUpRewardsMessage"
    }
    override public func className() -> String {
        return "Pogoprotos.Networking.Requests.Messages.LevelUpRewardsMessage"
    }
    override public func classMetaType() -> GeneratedMessage.Type {
        return Pogoprotos.Networking.Requests.Messages.LevelUpRewardsMessage.self
    }
    //Meta information declaration end

    final public class Builder : GeneratedMessageBuilder {
      private var builderResult:Pogoprotos.Networking.Requests.Messages.LevelUpRewardsMessage = Pogoprotos.Networking.Requests.Messages.LevelUpRewardsMessage()
      public func getMessage() -> Pogoprotos.Networking.Requests.Messages.LevelUpRewardsMessage {
          return builderResult
      }

      required override public init () {
         super.init()
      }
      public var hasLevel:Bool {
           get {
                return builderResult.hasLevel
           }
      }
      public var level:Int32 {
           get {
                return builderResult.level
           }
           set (value) {
               builderResult.hasLevel = true
               builderResult.level = value
           }
      }
      public func setLevel(value:Int32) -> Pogoprotos.Networking.Requests.Messages.LevelUpRewardsMessage.Builder {
        self.level = value
        return self
      }
      public func clearLevel() -> Pogoprotos.Networking.Requests.Messages.LevelUpRewardsMessage.Builder{
           builderResult.hasLevel = false
           builderResult.level = Int32(0)
           return self
      }
      override public var internalGetResult:GeneratedMessage {
           get {
              return builderResult
           }
      }
      override public func clear() -> Pogoprotos.Networking.Requests.Messages.LevelUpRewardsMessage.Builder {
        builderResult = Pogoprotos.Networking.Requests.Messages.LevelUpRewardsMessage()
        return self
      }
      override public func clone() throws -> Pogoprotos.Networking.Requests.Messages.LevelUpRewardsMessage.Builder {
        return try Pogoprotos.Networking.Requests.Messages.LevelUpRewardsMessage.builderWithPrototype(builderResult)
      }
      override public func build() throws -> Pogoprotos.Networking.Requests.Messages.LevelUpRewardsMessage {
           try checkInitialized()
           return buildPartial()
      }
      public func buildPartial() -> Pogoprotos.Networking.Requests.Messages.LevelUpRewardsMessage {
        let returnMe:Pogoprotos.Networking.Requests.Messages.LevelUpRewardsMessage = builderResult
        return returnMe
      }
      public func mergeFrom(other:Pogoprotos.Networking.Requests.Messages.LevelUpRewardsMessage) throws -> Pogoprotos.Networking.Requests.Messages.LevelUpRewardsMessage.Builder {
        if other == Pogoprotos.Networking.Requests.Messages.LevelUpRewardsMessage() {
         return self
        }
        if other.hasLevel {
             level = other.level
        }
        try mergeUnknownFields(other.unknownFields)
        return self
      }
      override public func mergeFromCodedInputStream(input:CodedInputStream) throws -> Pogoprotos.Networking.Requests.Messages.LevelUpRewardsMessage.Builder {
           return try mergeFromCodedInputStream(input, extensionRegistry:ExtensionRegistry())
      }
      override public func mergeFromCodedInputStream(input:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.LevelUpRewardsMessage.Builder {
        let unknownFieldsBuilder:UnknownFieldSet.Builder = try UnknownFieldSet.builderWithUnknownFields(self.unknownFields)
        while (true) {
          let protobufTag = try input.readTag()
          switch protobufTag {
          case 0: 
            self.unknownFields = try unknownFieldsBuilder.build()
            return self

          case 8:
            level = try input.readInt32()

          default:
            if (!(try parseUnknownField(input,unknownFields:unknownFieldsBuilder, extensionRegistry:extensionRegistry, tag:protobufTag))) {
               unknownFields = try unknownFieldsBuilder.build()
               return self
            }
          }
        }
      }
      override class public func decodeToBuilder(jsonMap:Dictionary<String,AnyObject>) throws -> Pogoprotos.Networking.Requests.Messages.LevelUpRewardsMessage.Builder {
        let resultDecodedBuilder = Pogoprotos.Networking.Requests.Messages.LevelUpRewardsMessage.Builder()
        if let jsonValueLevel = jsonMap["level"] as? NSNumber {
          resultDecodedBuilder.level = jsonValueLevel.intValue
        }
        return resultDecodedBuilder
      }
      override class public func fromJSONToBuilder(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.LevelUpRewardsMessage.Builder {
        let jsonData = try NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions(rawValue: 0))
        guard let jsDataCast = jsonData as? Dictionary<String,AnyObject> else {
          throw ProtocolBuffersError.InvalidProtocolBuffer("Invalid JSON data")
        }
        return try Pogoprotos.Networking.Requests.Messages.LevelUpRewardsMessage.Builder.decodeToBuilder(jsDataCast)
      }
    }

  }

  final public class MarkTutorialCompleteMessage : GeneratedMessage, GeneratedMessageProtocol {
    private var tutorialsCompletedMemoizedSerializedSize:Int32 = 0
    public private(set) var tutorialsCompleted:Array<Pogoprotos.Enums.TutorialState> = Array<Pogoprotos.Enums.TutorialState>()
    public private(set) var hasSendMarketingEmails:Bool = false
    public private(set) var sendMarketingEmails:Bool = false

    public private(set) var hasSendPushNotifications:Bool = false
    public private(set) var sendPushNotifications:Bool = false

    required public init() {
         super.init()
    }
    override public func isInitialized() -> Bool {
     return true
    }
    override public func writeToCodedOutputStream(output:CodedOutputStream) throws {
      for oneValueOftutorialsCompleted in tutorialsCompleted {
          try output.writeEnum(1, value:oneValueOftutorialsCompleted.rawValue)
      }
      if hasSendMarketingEmails {
        try output.writeBool(2, value:sendMarketingEmails)
      }
      if hasSendPushNotifications {
        try output.writeBool(3, value:sendPushNotifications)
      }
      try unknownFields.writeToCodedOutputStream(output)
    }
    override public func serializedSize() -> Int32 {
      var serialize_size:Int32 = memoizedSerializedSize
      if serialize_size != -1 {
       return serialize_size
      }

      serialize_size = 0
      var dataSizetutorialsCompleted:Int32 = 0
      for oneValueOftutorialsCompleted in tutorialsCompleted {
          dataSizetutorialsCompleted += oneValueOftutorialsCompleted.rawValue.computeEnumSizeNoTag()
      }
      serialize_size += dataSizetutorialsCompleted
      serialize_size += (1 * Int32(tutorialsCompleted.count))
      if hasSendMarketingEmails {
        serialize_size += sendMarketingEmails.computeBoolSize(2)
      }
      if hasSendPushNotifications {
        serialize_size += sendPushNotifications.computeBoolSize(3)
      }
      serialize_size += unknownFields.serializedSize()
      memoizedSerializedSize = serialize_size
      return serialize_size
    }
    public class func parseArrayDelimitedFromInputStream(input:NSInputStream) throws -> Array<Pogoprotos.Networking.Requests.Messages.MarkTutorialCompleteMessage> {
      var mergedArray = Array<Pogoprotos.Networking.Requests.Messages.MarkTutorialCompleteMessage>()
      while let value = try parseFromDelimitedFromInputStream(input) {
        mergedArray += [value]
      }
      return mergedArray
    }
    public class func parseFromDelimitedFromInputStream(input:NSInputStream) throws -> Pogoprotos.Networking.Requests.Messages.MarkTutorialCompleteMessage? {
      return try Pogoprotos.Networking.Requests.Messages.MarkTutorialCompleteMessage.Builder().mergeDelimitedFromInputStream(input)?.build()
    }
    public class func parseFromData(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.MarkTutorialCompleteMessage {
      return try Pogoprotos.Networking.Requests.Messages.MarkTutorialCompleteMessage.Builder().mergeFromData(data, extensionRegistry:Pogoprotos.Networking.Requests.Messages.PogoprotosNetworkingRequestsMessagesRoot.sharedInstance.extensionRegistry).build()
    }
    public class func parseFromData(data:NSData, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.MarkTutorialCompleteMessage {
      return try Pogoprotos.Networking.Requests.Messages.MarkTutorialCompleteMessage.Builder().mergeFromData(data, extensionRegistry:extensionRegistry).build()
    }
    public class func parseFromInputStream(input:NSInputStream) throws -> Pogoprotos.Networking.Requests.Messages.MarkTutorialCompleteMessage {
      return try Pogoprotos.Networking.Requests.Messages.MarkTutorialCompleteMessage.Builder().mergeFromInputStream(input).build()
    }
    public class func parseFromInputStream(input:NSInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.MarkTutorialCompleteMessage {
      return try Pogoprotos.Networking.Requests.Messages.MarkTutorialCompleteMessage.Builder().mergeFromInputStream(input, extensionRegistry:extensionRegistry).build()
    }
    public class func parseFromCodedInputStream(input:CodedInputStream) throws -> Pogoprotos.Networking.Requests.Messages.MarkTutorialCompleteMessage {
      return try Pogoprotos.Networking.Requests.Messages.MarkTutorialCompleteMessage.Builder().mergeFromCodedInputStream(input).build()
    }
    public class func parseFromCodedInputStream(input:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.MarkTutorialCompleteMessage {
      return try Pogoprotos.Networking.Requests.Messages.MarkTutorialCompleteMessage.Builder().mergeFromCodedInputStream(input, extensionRegistry:extensionRegistry).build()
    }
    public class func getBuilder() -> Pogoprotos.Networking.Requests.Messages.MarkTutorialCompleteMessage.Builder {
      return Pogoprotos.Networking.Requests.Messages.MarkTutorialCompleteMessage.classBuilder() as! Pogoprotos.Networking.Requests.Messages.MarkTutorialCompleteMessage.Builder
    }
    public func getBuilder() -> Pogoprotos.Networking.Requests.Messages.MarkTutorialCompleteMessage.Builder {
      return classBuilder() as! Pogoprotos.Networking.Requests.Messages.MarkTutorialCompleteMessage.Builder
    }
    override public class func classBuilder() -> MessageBuilder {
      return Pogoprotos.Networking.Requests.Messages.MarkTutorialCompleteMessage.Builder()
    }
    override public func classBuilder() -> MessageBuilder {
      return Pogoprotos.Networking.Requests.Messages.MarkTutorialCompleteMessage.Builder()
    }
    public func toBuilder() throws -> Pogoprotos.Networking.Requests.Messages.MarkTutorialCompleteMessage.Builder {
      return try Pogoprotos.Networking.Requests.Messages.MarkTutorialCompleteMessage.builderWithPrototype(self)
    }
    public class func builderWithPrototype(prototype:Pogoprotos.Networking.Requests.Messages.MarkTutorialCompleteMessage) throws -> Pogoprotos.Networking.Requests.Messages.MarkTutorialCompleteMessage.Builder {
      return try Pogoprotos.Networking.Requests.Messages.MarkTutorialCompleteMessage.Builder().mergeFrom(prototype)
    }
    override public func encode() throws -> Dictionary<String,AnyObject> {
      guard isInitialized() else {
        throw ProtocolBuffersError.InvalidProtocolBuffer("Uninitialized Message")
      }

      var jsonMap:Dictionary<String,AnyObject> = Dictionary<String,AnyObject>()
      if !tutorialsCompleted.isEmpty {
        var jsonArrayTutorialsCompleted:Array<String> = []
          for oneValueTutorialsCompleted in tutorialsCompleted {
            jsonArrayTutorialsCompleted += [oneValueTutorialsCompleted.toString()]
          }
        jsonMap["tutorialsCompleted"] = jsonArrayTutorialsCompleted
      }
      if hasSendMarketingEmails {
        jsonMap["sendMarketingEmails"] = sendMarketingEmails
      }
      if hasSendPushNotifications {
        jsonMap["sendPushNotifications"] = sendPushNotifications
      }
      return jsonMap
    }
    override class public func decode(jsonMap:Dictionary<String,AnyObject>) throws -> Pogoprotos.Networking.Requests.Messages.MarkTutorialCompleteMessage {
      return try Pogoprotos.Networking.Requests.Messages.MarkTutorialCompleteMessage.Builder.decodeToBuilder(jsonMap).build()
    }
    override class public func fromJSON(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.MarkTutorialCompleteMessage {
      return try Pogoprotos.Networking.Requests.Messages.MarkTutorialCompleteMessage.Builder.fromJSONToBuilder(data).build()
    }
    override public func getDescription(indent:String) throws -> String {
      var output = ""
      var tutorialsCompletedElementIndex:Int = 0
      for oneValueOftutorialsCompleted in tutorialsCompleted {
          output += "\(indent) tutorialsCompleted[\(tutorialsCompletedElementIndex)]: \(oneValueOftutorialsCompleted.description)\n"
          tutorialsCompletedElementIndex += 1
      }
      if hasSendMarketingEmails {
        output += "\(indent) sendMarketingEmails: \(sendMarketingEmails) \n"
      }
      if hasSendPushNotifications {
        output += "\(indent) sendPushNotifications: \(sendPushNotifications) \n"
      }
      output += unknownFields.getDescription(indent)
      return output
    }
    override public var hashValue:Int {
        get {
            var hashCode:Int = 7
            for oneValueOftutorialsCompleted in tutorialsCompleted {
                hashCode = (hashCode &* 31) &+ Int(oneValueOftutorialsCompleted.rawValue)
            }
            if hasSendMarketingEmails {
               hashCode = (hashCode &* 31) &+ sendMarketingEmails.hashValue
            }
            if hasSendPushNotifications {
               hashCode = (hashCode &* 31) &+ sendPushNotifications.hashValue
            }
            hashCode = (hashCode &* 31) &+  unknownFields.hashValue
            return hashCode
        }
    }


    //Meta information declaration start

    override public class func className() -> String {
        return "Pogoprotos.Networking.Requests.Messages.MarkTutorialCompleteMessage"
    }
    override public func className() -> String {
        return "Pogoprotos.Networking.Requests.Messages.MarkTutorialCompleteMessage"
    }
    override public func classMetaType() -> GeneratedMessage.Type {
        return Pogoprotos.Networking.Requests.Messages.MarkTutorialCompleteMessage.self
    }
    //Meta information declaration end

    final public class Builder : GeneratedMessageBuilder {
      private var builderResult:Pogoprotos.Networking.Requests.Messages.MarkTutorialCompleteMessage = Pogoprotos.Networking.Requests.Messages.MarkTutorialCompleteMessage()
      public func getMessage() -> Pogoprotos.Networking.Requests.Messages.MarkTutorialCompleteMessage {
          return builderResult
      }

      required override public init () {
         super.init()
      }
      public var tutorialsCompleted:Array<Pogoprotos.Enums.TutorialState> {
          get {
              return builderResult.tutorialsCompleted
          }
          set (value) {
              builderResult.tutorialsCompleted = value
          }
      }
      public func setTutorialsCompleted(value:Array<Pogoprotos.Enums.TutorialState>) -> Pogoprotos.Networking.Requests.Messages.MarkTutorialCompleteMessage.Builder {
        self.tutorialsCompleted = value
        return self
      }
      public func clearTutorialsCompleted() -> Pogoprotos.Networking.Requests.Messages.MarkTutorialCompleteMessage.Builder {
        builderResult.tutorialsCompleted.removeAll(keepCapacity: false)
        return self
      }
      public var hasSendMarketingEmails:Bool {
           get {
                return builderResult.hasSendMarketingEmails
           }
      }
      public var sendMarketingEmails:Bool {
           get {
                return builderResult.sendMarketingEmails
           }
           set (value) {
               builderResult.hasSendMarketingEmails = true
               builderResult.sendMarketingEmails = value
           }
      }
      public func setSendMarketingEmails(value:Bool) -> Pogoprotos.Networking.Requests.Messages.MarkTutorialCompleteMessage.Builder {
        self.sendMarketingEmails = value
        return self
      }
      public func clearSendMarketingEmails() -> Pogoprotos.Networking.Requests.Messages.MarkTutorialCompleteMessage.Builder{
           builderResult.hasSendMarketingEmails = false
           builderResult.sendMarketingEmails = false
           return self
      }
      public var hasSendPushNotifications:Bool {
           get {
                return builderResult.hasSendPushNotifications
           }
      }
      public var sendPushNotifications:Bool {
           get {
                return builderResult.sendPushNotifications
           }
           set (value) {
               builderResult.hasSendPushNotifications = true
               builderResult.sendPushNotifications = value
           }
      }
      public func setSendPushNotifications(value:Bool) -> Pogoprotos.Networking.Requests.Messages.MarkTutorialCompleteMessage.Builder {
        self.sendPushNotifications = value
        return self
      }
      public func clearSendPushNotifications() -> Pogoprotos.Networking.Requests.Messages.MarkTutorialCompleteMessage.Builder{
           builderResult.hasSendPushNotifications = false
           builderResult.sendPushNotifications = false
           return self
      }
      override public var internalGetResult:GeneratedMessage {
           get {
              return builderResult
           }
      }
      override public func clear() -> Pogoprotos.Networking.Requests.Messages.MarkTutorialCompleteMessage.Builder {
        builderResult = Pogoprotos.Networking.Requests.Messages.MarkTutorialCompleteMessage()
        return self
      }
      override public func clone() throws -> Pogoprotos.Networking.Requests.Messages.MarkTutorialCompleteMessage.Builder {
        return try Pogoprotos.Networking.Requests.Messages.MarkTutorialCompleteMessage.builderWithPrototype(builderResult)
      }
      override public func build() throws -> Pogoprotos.Networking.Requests.Messages.MarkTutorialCompleteMessage {
           try checkInitialized()
           return buildPartial()
      }
      public func buildPartial() -> Pogoprotos.Networking.Requests.Messages.MarkTutorialCompleteMessage {
        let returnMe:Pogoprotos.Networking.Requests.Messages.MarkTutorialCompleteMessage = builderResult
        return returnMe
      }
      public func mergeFrom(other:Pogoprotos.Networking.Requests.Messages.MarkTutorialCompleteMessage) throws -> Pogoprotos.Networking.Requests.Messages.MarkTutorialCompleteMessage.Builder {
        if other == Pogoprotos.Networking.Requests.Messages.MarkTutorialCompleteMessage() {
         return self
        }
        if !other.tutorialsCompleted.isEmpty {
           builderResult.tutorialsCompleted += other.tutorialsCompleted
        }
        if other.hasSendMarketingEmails {
             sendMarketingEmails = other.sendMarketingEmails
        }
        if other.hasSendPushNotifications {
             sendPushNotifications = other.sendPushNotifications
        }
        try mergeUnknownFields(other.unknownFields)
        return self
      }
      override public func mergeFromCodedInputStream(input:CodedInputStream) throws -> Pogoprotos.Networking.Requests.Messages.MarkTutorialCompleteMessage.Builder {
           return try mergeFromCodedInputStream(input, extensionRegistry:ExtensionRegistry())
      }
      override public func mergeFromCodedInputStream(input:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.MarkTutorialCompleteMessage.Builder {
        let unknownFieldsBuilder:UnknownFieldSet.Builder = try UnknownFieldSet.builderWithUnknownFields(self.unknownFields)
        while (true) {
          let protobufTag = try input.readTag()
          switch protobufTag {
          case 0: 
            self.unknownFields = try unknownFieldsBuilder.build()
            return self

          case 8:
            let valueInttutorialsCompleted = try input.readEnum()
            if let enumstutorialsCompleted = Pogoprotos.Enums.TutorialState(rawValue:valueInttutorialsCompleted) {
                 builderResult.tutorialsCompleted += [enumstutorialsCompleted]
            } else {
                 try unknownFieldsBuilder.mergeVarintField(1, value:Int64(valueInttutorialsCompleted))
            }

          case 16:
            sendMarketingEmails = try input.readBool()

          case 24:
            sendPushNotifications = try input.readBool()

          default:
            if (!(try parseUnknownField(input,unknownFields:unknownFieldsBuilder, extensionRegistry:extensionRegistry, tag:protobufTag))) {
               unknownFields = try unknownFieldsBuilder.build()
               return self
            }
          }
        }
      }
      override class public func decodeToBuilder(jsonMap:Dictionary<String,AnyObject>) throws -> Pogoprotos.Networking.Requests.Messages.MarkTutorialCompleteMessage.Builder {
        let resultDecodedBuilder = Pogoprotos.Networking.Requests.Messages.MarkTutorialCompleteMessage.Builder()
        if let jsonValueTutorialsCompleted = jsonMap["tutorialsCompleted"] as? Array<String> {
          var jsonArrayTutorialsCompleted:Array<Pogoprotos.Enums.TutorialState> = []
          for oneValueTutorialsCompleted in jsonValueTutorialsCompleted {
            let enumFromStringTutorialsCompleted = try Pogoprotos.Enums.TutorialState.fromString(oneValueTutorialsCompleted)
            jsonArrayTutorialsCompleted += [enumFromStringTutorialsCompleted]
          }
          resultDecodedBuilder.tutorialsCompleted = jsonArrayTutorialsCompleted
        }
        if let jsonValueSendMarketingEmails = jsonMap["sendMarketingEmails"] as? Bool {
          resultDecodedBuilder.sendMarketingEmails = jsonValueSendMarketingEmails
        }
        if let jsonValueSendPushNotifications = jsonMap["sendPushNotifications"] as? Bool {
          resultDecodedBuilder.sendPushNotifications = jsonValueSendPushNotifications
        }
        return resultDecodedBuilder
      }
      override class public func fromJSONToBuilder(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.MarkTutorialCompleteMessage.Builder {
        let jsonData = try NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions(rawValue: 0))
        guard let jsDataCast = jsonData as? Dictionary<String,AnyObject> else {
          throw ProtocolBuffersError.InvalidProtocolBuffer("Invalid JSON data")
        }
        return try Pogoprotos.Networking.Requests.Messages.MarkTutorialCompleteMessage.Builder.decodeToBuilder(jsDataCast)
      }
    }

  }

  final public class NicknamePokemonMessage : GeneratedMessage, GeneratedMessageProtocol {
    public private(set) var hasPokemonId:Bool = false
    public private(set) var pokemonId:UInt64 = UInt64(0)

    public private(set) var hasNickname:Bool = false
    public private(set) var nickname:String = ""

    required public init() {
         super.init()
    }
    override public func isInitialized() -> Bool {
     return true
    }
    override public func writeToCodedOutputStream(output:CodedOutputStream) throws {
      if hasPokemonId {
        try output.writeFixed64(1, value:pokemonId)
      }
      if hasNickname {
        try output.writeString(2, value:nickname)
      }
      try unknownFields.writeToCodedOutputStream(output)
    }
    override public func serializedSize() -> Int32 {
      var serialize_size:Int32 = memoizedSerializedSize
      if serialize_size != -1 {
       return serialize_size
      }

      serialize_size = 0
      if hasPokemonId {
        serialize_size += pokemonId.computeFixed64Size(1)
      }
      if hasNickname {
        serialize_size += nickname.computeStringSize(2)
      }
      serialize_size += unknownFields.serializedSize()
      memoizedSerializedSize = serialize_size
      return serialize_size
    }
    public class func parseArrayDelimitedFromInputStream(input:NSInputStream) throws -> Array<Pogoprotos.Networking.Requests.Messages.NicknamePokemonMessage> {
      var mergedArray = Array<Pogoprotos.Networking.Requests.Messages.NicknamePokemonMessage>()
      while let value = try parseFromDelimitedFromInputStream(input) {
        mergedArray += [value]
      }
      return mergedArray
    }
    public class func parseFromDelimitedFromInputStream(input:NSInputStream) throws -> Pogoprotos.Networking.Requests.Messages.NicknamePokemonMessage? {
      return try Pogoprotos.Networking.Requests.Messages.NicknamePokemonMessage.Builder().mergeDelimitedFromInputStream(input)?.build()
    }
    public class func parseFromData(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.NicknamePokemonMessage {
      return try Pogoprotos.Networking.Requests.Messages.NicknamePokemonMessage.Builder().mergeFromData(data, extensionRegistry:Pogoprotos.Networking.Requests.Messages.PogoprotosNetworkingRequestsMessagesRoot.sharedInstance.extensionRegistry).build()
    }
    public class func parseFromData(data:NSData, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.NicknamePokemonMessage {
      return try Pogoprotos.Networking.Requests.Messages.NicknamePokemonMessage.Builder().mergeFromData(data, extensionRegistry:extensionRegistry).build()
    }
    public class func parseFromInputStream(input:NSInputStream) throws -> Pogoprotos.Networking.Requests.Messages.NicknamePokemonMessage {
      return try Pogoprotos.Networking.Requests.Messages.NicknamePokemonMessage.Builder().mergeFromInputStream(input).build()
    }
    public class func parseFromInputStream(input:NSInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.NicknamePokemonMessage {
      return try Pogoprotos.Networking.Requests.Messages.NicknamePokemonMessage.Builder().mergeFromInputStream(input, extensionRegistry:extensionRegistry).build()
    }
    public class func parseFromCodedInputStream(input:CodedInputStream) throws -> Pogoprotos.Networking.Requests.Messages.NicknamePokemonMessage {
      return try Pogoprotos.Networking.Requests.Messages.NicknamePokemonMessage.Builder().mergeFromCodedInputStream(input).build()
    }
    public class func parseFromCodedInputStream(input:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.NicknamePokemonMessage {
      return try Pogoprotos.Networking.Requests.Messages.NicknamePokemonMessage.Builder().mergeFromCodedInputStream(input, extensionRegistry:extensionRegistry).build()
    }
    public class func getBuilder() -> Pogoprotos.Networking.Requests.Messages.NicknamePokemonMessage.Builder {
      return Pogoprotos.Networking.Requests.Messages.NicknamePokemonMessage.classBuilder() as! Pogoprotos.Networking.Requests.Messages.NicknamePokemonMessage.Builder
    }
    public func getBuilder() -> Pogoprotos.Networking.Requests.Messages.NicknamePokemonMessage.Builder {
      return classBuilder() as! Pogoprotos.Networking.Requests.Messages.NicknamePokemonMessage.Builder
    }
    override public class func classBuilder() -> MessageBuilder {
      return Pogoprotos.Networking.Requests.Messages.NicknamePokemonMessage.Builder()
    }
    override public func classBuilder() -> MessageBuilder {
      return Pogoprotos.Networking.Requests.Messages.NicknamePokemonMessage.Builder()
    }
    public func toBuilder() throws -> Pogoprotos.Networking.Requests.Messages.NicknamePokemonMessage.Builder {
      return try Pogoprotos.Networking.Requests.Messages.NicknamePokemonMessage.builderWithPrototype(self)
    }
    public class func builderWithPrototype(prototype:Pogoprotos.Networking.Requests.Messages.NicknamePokemonMessage) throws -> Pogoprotos.Networking.Requests.Messages.NicknamePokemonMessage.Builder {
      return try Pogoprotos.Networking.Requests.Messages.NicknamePokemonMessage.Builder().mergeFrom(prototype)
    }
    override public func encode() throws -> Dictionary<String,AnyObject> {
      guard isInitialized() else {
        throw ProtocolBuffersError.InvalidProtocolBuffer("Uninitialized Message")
      }

      var jsonMap:Dictionary<String,AnyObject> = Dictionary<String,AnyObject>()
      if hasPokemonId {
        jsonMap["pokemonId"] = "\(pokemonId)"
      }
      if hasNickname {
        jsonMap["nickname"] = nickname
      }
      return jsonMap
    }
    override class public func decode(jsonMap:Dictionary<String,AnyObject>) throws -> Pogoprotos.Networking.Requests.Messages.NicknamePokemonMessage {
      return try Pogoprotos.Networking.Requests.Messages.NicknamePokemonMessage.Builder.decodeToBuilder(jsonMap).build()
    }
    override class public func fromJSON(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.NicknamePokemonMessage {
      return try Pogoprotos.Networking.Requests.Messages.NicknamePokemonMessage.Builder.fromJSONToBuilder(data).build()
    }
    override public func getDescription(indent:String) throws -> String {
      var output = ""
      if hasPokemonId {
        output += "\(indent) pokemonId: \(pokemonId) \n"
      }
      if hasNickname {
        output += "\(indent) nickname: \(nickname) \n"
      }
      output += unknownFields.getDescription(indent)
      return output
    }
    override public var hashValue:Int {
        get {
            var hashCode:Int = 7
            if hasPokemonId {
               hashCode = (hashCode &* 31) &+ pokemonId.hashValue
            }
            if hasNickname {
               hashCode = (hashCode &* 31) &+ nickname.hashValue
            }
            hashCode = (hashCode &* 31) &+  unknownFields.hashValue
            return hashCode
        }
    }


    //Meta information declaration start

    override public class func className() -> String {
        return "Pogoprotos.Networking.Requests.Messages.NicknamePokemonMessage"
    }
    override public func className() -> String {
        return "Pogoprotos.Networking.Requests.Messages.NicknamePokemonMessage"
    }
    override public func classMetaType() -> GeneratedMessage.Type {
        return Pogoprotos.Networking.Requests.Messages.NicknamePokemonMessage.self
    }
    //Meta information declaration end

    final public class Builder : GeneratedMessageBuilder {
      private var builderResult:Pogoprotos.Networking.Requests.Messages.NicknamePokemonMessage = Pogoprotos.Networking.Requests.Messages.NicknamePokemonMessage()
      public func getMessage() -> Pogoprotos.Networking.Requests.Messages.NicknamePokemonMessage {
          return builderResult
      }

      required override public init () {
         super.init()
      }
      public var hasPokemonId:Bool {
           get {
                return builderResult.hasPokemonId
           }
      }
      public var pokemonId:UInt64 {
           get {
                return builderResult.pokemonId
           }
           set (value) {
               builderResult.hasPokemonId = true
               builderResult.pokemonId = value
           }
      }
      public func setPokemonId(value:UInt64) -> Pogoprotos.Networking.Requests.Messages.NicknamePokemonMessage.Builder {
        self.pokemonId = value
        return self
      }
      public func clearPokemonId() -> Pogoprotos.Networking.Requests.Messages.NicknamePokemonMessage.Builder{
           builderResult.hasPokemonId = false
           builderResult.pokemonId = UInt64(0)
           return self
      }
      public var hasNickname:Bool {
           get {
                return builderResult.hasNickname
           }
      }
      public var nickname:String {
           get {
                return builderResult.nickname
           }
           set (value) {
               builderResult.hasNickname = true
               builderResult.nickname = value
           }
      }
      public func setNickname(value:String) -> Pogoprotos.Networking.Requests.Messages.NicknamePokemonMessage.Builder {
        self.nickname = value
        return self
      }
      public func clearNickname() -> Pogoprotos.Networking.Requests.Messages.NicknamePokemonMessage.Builder{
           builderResult.hasNickname = false
           builderResult.nickname = ""
           return self
      }
      override public var internalGetResult:GeneratedMessage {
           get {
              return builderResult
           }
      }
      override public func clear() -> Pogoprotos.Networking.Requests.Messages.NicknamePokemonMessage.Builder {
        builderResult = Pogoprotos.Networking.Requests.Messages.NicknamePokemonMessage()
        return self
      }
      override public func clone() throws -> Pogoprotos.Networking.Requests.Messages.NicknamePokemonMessage.Builder {
        return try Pogoprotos.Networking.Requests.Messages.NicknamePokemonMessage.builderWithPrototype(builderResult)
      }
      override public func build() throws -> Pogoprotos.Networking.Requests.Messages.NicknamePokemonMessage {
           try checkInitialized()
           return buildPartial()
      }
      public func buildPartial() -> Pogoprotos.Networking.Requests.Messages.NicknamePokemonMessage {
        let returnMe:Pogoprotos.Networking.Requests.Messages.NicknamePokemonMessage = builderResult
        return returnMe
      }
      public func mergeFrom(other:Pogoprotos.Networking.Requests.Messages.NicknamePokemonMessage) throws -> Pogoprotos.Networking.Requests.Messages.NicknamePokemonMessage.Builder {
        if other == Pogoprotos.Networking.Requests.Messages.NicknamePokemonMessage() {
         return self
        }
        if other.hasPokemonId {
             pokemonId = other.pokemonId
        }
        if other.hasNickname {
             nickname = other.nickname
        }
        try mergeUnknownFields(other.unknownFields)
        return self
      }
      override public func mergeFromCodedInputStream(input:CodedInputStream) throws -> Pogoprotos.Networking.Requests.Messages.NicknamePokemonMessage.Builder {
           return try mergeFromCodedInputStream(input, extensionRegistry:ExtensionRegistry())
      }
      override public func mergeFromCodedInputStream(input:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.NicknamePokemonMessage.Builder {
        let unknownFieldsBuilder:UnknownFieldSet.Builder = try UnknownFieldSet.builderWithUnknownFields(self.unknownFields)
        while (true) {
          let protobufTag = try input.readTag()
          switch protobufTag {
          case 0: 
            self.unknownFields = try unknownFieldsBuilder.build()
            return self

          case 9:
            pokemonId = try input.readFixed64()

          case 18:
            nickname = try input.readString()

          default:
            if (!(try parseUnknownField(input,unknownFields:unknownFieldsBuilder, extensionRegistry:extensionRegistry, tag:protobufTag))) {
               unknownFields = try unknownFieldsBuilder.build()
               return self
            }
          }
        }
      }
      override class public func decodeToBuilder(jsonMap:Dictionary<String,AnyObject>) throws -> Pogoprotos.Networking.Requests.Messages.NicknamePokemonMessage.Builder {
        let resultDecodedBuilder = Pogoprotos.Networking.Requests.Messages.NicknamePokemonMessage.Builder()
        if let jsonValuePokemonId = jsonMap["pokemonId"] as? String {
          resultDecodedBuilder.pokemonId = UInt64(jsonValuePokemonId)!
        }
        if let jsonValueNickname = jsonMap["nickname"] as? String {
          resultDecodedBuilder.nickname = jsonValueNickname
        }
        return resultDecodedBuilder
      }
      override class public func fromJSONToBuilder(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.NicknamePokemonMessage.Builder {
        let jsonData = try NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions(rawValue: 0))
        guard let jsDataCast = jsonData as? Dictionary<String,AnyObject> else {
          throw ProtocolBuffersError.InvalidProtocolBuffer("Invalid JSON data")
        }
        return try Pogoprotos.Networking.Requests.Messages.NicknamePokemonMessage.Builder.decodeToBuilder(jsDataCast)
      }
    }

  }

  final public class PlayerUpdateMessage : GeneratedMessage, GeneratedMessageProtocol {
    public private(set) var hasLatitude:Bool = false
    public private(set) var latitude:Double = Double(0)

    public private(set) var hasLongitude:Bool = false
    public private(set) var longitude:Double = Double(0)

    required public init() {
         super.init()
    }
    override public func isInitialized() -> Bool {
     return true
    }
    override public func writeToCodedOutputStream(output:CodedOutputStream) throws {
      if hasLatitude {
        try output.writeDouble(1, value:latitude)
      }
      if hasLongitude {
        try output.writeDouble(2, value:longitude)
      }
      try unknownFields.writeToCodedOutputStream(output)
    }
    override public func serializedSize() -> Int32 {
      var serialize_size:Int32 = memoizedSerializedSize
      if serialize_size != -1 {
       return serialize_size
      }

      serialize_size = 0
      if hasLatitude {
        serialize_size += latitude.computeDoubleSize(1)
      }
      if hasLongitude {
        serialize_size += longitude.computeDoubleSize(2)
      }
      serialize_size += unknownFields.serializedSize()
      memoizedSerializedSize = serialize_size
      return serialize_size
    }
    public class func parseArrayDelimitedFromInputStream(input:NSInputStream) throws -> Array<Pogoprotos.Networking.Requests.Messages.PlayerUpdateMessage> {
      var mergedArray = Array<Pogoprotos.Networking.Requests.Messages.PlayerUpdateMessage>()
      while let value = try parseFromDelimitedFromInputStream(input) {
        mergedArray += [value]
      }
      return mergedArray
    }
    public class func parseFromDelimitedFromInputStream(input:NSInputStream) throws -> Pogoprotos.Networking.Requests.Messages.PlayerUpdateMessage? {
      return try Pogoprotos.Networking.Requests.Messages.PlayerUpdateMessage.Builder().mergeDelimitedFromInputStream(input)?.build()
    }
    public class func parseFromData(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.PlayerUpdateMessage {
      return try Pogoprotos.Networking.Requests.Messages.PlayerUpdateMessage.Builder().mergeFromData(data, extensionRegistry:Pogoprotos.Networking.Requests.Messages.PogoprotosNetworkingRequestsMessagesRoot.sharedInstance.extensionRegistry).build()
    }
    public class func parseFromData(data:NSData, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.PlayerUpdateMessage {
      return try Pogoprotos.Networking.Requests.Messages.PlayerUpdateMessage.Builder().mergeFromData(data, extensionRegistry:extensionRegistry).build()
    }
    public class func parseFromInputStream(input:NSInputStream) throws -> Pogoprotos.Networking.Requests.Messages.PlayerUpdateMessage {
      return try Pogoprotos.Networking.Requests.Messages.PlayerUpdateMessage.Builder().mergeFromInputStream(input).build()
    }
    public class func parseFromInputStream(input:NSInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.PlayerUpdateMessage {
      return try Pogoprotos.Networking.Requests.Messages.PlayerUpdateMessage.Builder().mergeFromInputStream(input, extensionRegistry:extensionRegistry).build()
    }
    public class func parseFromCodedInputStream(input:CodedInputStream) throws -> Pogoprotos.Networking.Requests.Messages.PlayerUpdateMessage {
      return try Pogoprotos.Networking.Requests.Messages.PlayerUpdateMessage.Builder().mergeFromCodedInputStream(input).build()
    }
    public class func parseFromCodedInputStream(input:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.PlayerUpdateMessage {
      return try Pogoprotos.Networking.Requests.Messages.PlayerUpdateMessage.Builder().mergeFromCodedInputStream(input, extensionRegistry:extensionRegistry).build()
    }
    public class func getBuilder() -> Pogoprotos.Networking.Requests.Messages.PlayerUpdateMessage.Builder {
      return Pogoprotos.Networking.Requests.Messages.PlayerUpdateMessage.classBuilder() as! Pogoprotos.Networking.Requests.Messages.PlayerUpdateMessage.Builder
    }
    public func getBuilder() -> Pogoprotos.Networking.Requests.Messages.PlayerUpdateMessage.Builder {
      return classBuilder() as! Pogoprotos.Networking.Requests.Messages.PlayerUpdateMessage.Builder
    }
    override public class func classBuilder() -> MessageBuilder {
      return Pogoprotos.Networking.Requests.Messages.PlayerUpdateMessage.Builder()
    }
    override public func classBuilder() -> MessageBuilder {
      return Pogoprotos.Networking.Requests.Messages.PlayerUpdateMessage.Builder()
    }
    public func toBuilder() throws -> Pogoprotos.Networking.Requests.Messages.PlayerUpdateMessage.Builder {
      return try Pogoprotos.Networking.Requests.Messages.PlayerUpdateMessage.builderWithPrototype(self)
    }
    public class func builderWithPrototype(prototype:Pogoprotos.Networking.Requests.Messages.PlayerUpdateMessage) throws -> Pogoprotos.Networking.Requests.Messages.PlayerUpdateMessage.Builder {
      return try Pogoprotos.Networking.Requests.Messages.PlayerUpdateMessage.Builder().mergeFrom(prototype)
    }
    override public func encode() throws -> Dictionary<String,AnyObject> {
      guard isInitialized() else {
        throw ProtocolBuffersError.InvalidProtocolBuffer("Uninitialized Message")
      }

      var jsonMap:Dictionary<String,AnyObject> = Dictionary<String,AnyObject>()
      if hasLatitude {
        jsonMap["latitude"] = NSNumber(double:latitude)
      }
      if hasLongitude {
        jsonMap["longitude"] = NSNumber(double:longitude)
      }
      return jsonMap
    }
    override class public func decode(jsonMap:Dictionary<String,AnyObject>) throws -> Pogoprotos.Networking.Requests.Messages.PlayerUpdateMessage {
      return try Pogoprotos.Networking.Requests.Messages.PlayerUpdateMessage.Builder.decodeToBuilder(jsonMap).build()
    }
    override class public func fromJSON(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.PlayerUpdateMessage {
      return try Pogoprotos.Networking.Requests.Messages.PlayerUpdateMessage.Builder.fromJSONToBuilder(data).build()
    }
    override public func getDescription(indent:String) throws -> String {
      var output = ""
      if hasLatitude {
        output += "\(indent) latitude: \(latitude) \n"
      }
      if hasLongitude {
        output += "\(indent) longitude: \(longitude) \n"
      }
      output += unknownFields.getDescription(indent)
      return output
    }
    override public var hashValue:Int {
        get {
            var hashCode:Int = 7
            if hasLatitude {
               hashCode = (hashCode &* 31) &+ latitude.hashValue
            }
            if hasLongitude {
               hashCode = (hashCode &* 31) &+ longitude.hashValue
            }
            hashCode = (hashCode &* 31) &+  unknownFields.hashValue
            return hashCode
        }
    }


    //Meta information declaration start

    override public class func className() -> String {
        return "Pogoprotos.Networking.Requests.Messages.PlayerUpdateMessage"
    }
    override public func className() -> String {
        return "Pogoprotos.Networking.Requests.Messages.PlayerUpdateMessage"
    }
    override public func classMetaType() -> GeneratedMessage.Type {
        return Pogoprotos.Networking.Requests.Messages.PlayerUpdateMessage.self
    }
    //Meta information declaration end

    final public class Builder : GeneratedMessageBuilder {
      private var builderResult:Pogoprotos.Networking.Requests.Messages.PlayerUpdateMessage = Pogoprotos.Networking.Requests.Messages.PlayerUpdateMessage()
      public func getMessage() -> Pogoprotos.Networking.Requests.Messages.PlayerUpdateMessage {
          return builderResult
      }

      required override public init () {
         super.init()
      }
      public var hasLatitude:Bool {
           get {
                return builderResult.hasLatitude
           }
      }
      public var latitude:Double {
           get {
                return builderResult.latitude
           }
           set (value) {
               builderResult.hasLatitude = true
               builderResult.latitude = value
           }
      }
      public func setLatitude(value:Double) -> Pogoprotos.Networking.Requests.Messages.PlayerUpdateMessage.Builder {
        self.latitude = value
        return self
      }
      public func clearLatitude() -> Pogoprotos.Networking.Requests.Messages.PlayerUpdateMessage.Builder{
           builderResult.hasLatitude = false
           builderResult.latitude = Double(0)
           return self
      }
      public var hasLongitude:Bool {
           get {
                return builderResult.hasLongitude
           }
      }
      public var longitude:Double {
           get {
                return builderResult.longitude
           }
           set (value) {
               builderResult.hasLongitude = true
               builderResult.longitude = value
           }
      }
      public func setLongitude(value:Double) -> Pogoprotos.Networking.Requests.Messages.PlayerUpdateMessage.Builder {
        self.longitude = value
        return self
      }
      public func clearLongitude() -> Pogoprotos.Networking.Requests.Messages.PlayerUpdateMessage.Builder{
           builderResult.hasLongitude = false
           builderResult.longitude = Double(0)
           return self
      }
      override public var internalGetResult:GeneratedMessage {
           get {
              return builderResult
           }
      }
      override public func clear() -> Pogoprotos.Networking.Requests.Messages.PlayerUpdateMessage.Builder {
        builderResult = Pogoprotos.Networking.Requests.Messages.PlayerUpdateMessage()
        return self
      }
      override public func clone() throws -> Pogoprotos.Networking.Requests.Messages.PlayerUpdateMessage.Builder {
        return try Pogoprotos.Networking.Requests.Messages.PlayerUpdateMessage.builderWithPrototype(builderResult)
      }
      override public func build() throws -> Pogoprotos.Networking.Requests.Messages.PlayerUpdateMessage {
           try checkInitialized()
           return buildPartial()
      }
      public func buildPartial() -> Pogoprotos.Networking.Requests.Messages.PlayerUpdateMessage {
        let returnMe:Pogoprotos.Networking.Requests.Messages.PlayerUpdateMessage = builderResult
        return returnMe
      }
      public func mergeFrom(other:Pogoprotos.Networking.Requests.Messages.PlayerUpdateMessage) throws -> Pogoprotos.Networking.Requests.Messages.PlayerUpdateMessage.Builder {
        if other == Pogoprotos.Networking.Requests.Messages.PlayerUpdateMessage() {
         return self
        }
        if other.hasLatitude {
             latitude = other.latitude
        }
        if other.hasLongitude {
             longitude = other.longitude
        }
        try mergeUnknownFields(other.unknownFields)
        return self
      }
      override public func mergeFromCodedInputStream(input:CodedInputStream) throws -> Pogoprotos.Networking.Requests.Messages.PlayerUpdateMessage.Builder {
           return try mergeFromCodedInputStream(input, extensionRegistry:ExtensionRegistry())
      }
      override public func mergeFromCodedInputStream(input:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.PlayerUpdateMessage.Builder {
        let unknownFieldsBuilder:UnknownFieldSet.Builder = try UnknownFieldSet.builderWithUnknownFields(self.unknownFields)
        while (true) {
          let protobufTag = try input.readTag()
          switch protobufTag {
          case 0: 
            self.unknownFields = try unknownFieldsBuilder.build()
            return self

          case 9:
            latitude = try input.readDouble()

          case 17:
            longitude = try input.readDouble()

          default:
            if (!(try parseUnknownField(input,unknownFields:unknownFieldsBuilder, extensionRegistry:extensionRegistry, tag:protobufTag))) {
               unknownFields = try unknownFieldsBuilder.build()
               return self
            }
          }
        }
      }
      override class public func decodeToBuilder(jsonMap:Dictionary<String,AnyObject>) throws -> Pogoprotos.Networking.Requests.Messages.PlayerUpdateMessage.Builder {
        let resultDecodedBuilder = Pogoprotos.Networking.Requests.Messages.PlayerUpdateMessage.Builder()
        if let jsonValueLatitude = jsonMap["latitude"] as? NSNumber {
          resultDecodedBuilder.latitude = jsonValueLatitude.doubleValue
        }
        if let jsonValueLongitude = jsonMap["longitude"] as? NSNumber {
          resultDecodedBuilder.longitude = jsonValueLongitude.doubleValue
        }
        return resultDecodedBuilder
      }
      override class public func fromJSONToBuilder(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.PlayerUpdateMessage.Builder {
        let jsonData = try NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions(rawValue: 0))
        guard let jsDataCast = jsonData as? Dictionary<String,AnyObject> else {
          throw ProtocolBuffersError.InvalidProtocolBuffer("Invalid JSON data")
        }
        return try Pogoprotos.Networking.Requests.Messages.PlayerUpdateMessage.Builder.decodeToBuilder(jsDataCast)
      }
    }

  }

  final public class RecycleInventoryItemMessage : GeneratedMessage, GeneratedMessageProtocol {
    public private(set) var itemId:Pogoprotos.Inventory.Item.ItemId = Pogoprotos.Inventory.Item.ItemId.ItemUnknown
    public private(set) var hasItemId:Bool = false
    public private(set) var hasCount:Bool = false
    public private(set) var count:Int32 = Int32(0)

    required public init() {
         super.init()
    }
    override public func isInitialized() -> Bool {
     return true
    }
    override public func writeToCodedOutputStream(output:CodedOutputStream) throws {
      if hasItemId {
        try output.writeEnum(1, value:itemId.rawValue)
      }
      if hasCount {
        try output.writeInt32(2, value:count)
      }
      try unknownFields.writeToCodedOutputStream(output)
    }
    override public func serializedSize() -> Int32 {
      var serialize_size:Int32 = memoizedSerializedSize
      if serialize_size != -1 {
       return serialize_size
      }

      serialize_size = 0
      if (hasItemId) {
        serialize_size += itemId.rawValue.computeEnumSize(1)
      }
      if hasCount {
        serialize_size += count.computeInt32Size(2)
      }
      serialize_size += unknownFields.serializedSize()
      memoizedSerializedSize = serialize_size
      return serialize_size
    }
    public class func parseArrayDelimitedFromInputStream(input:NSInputStream) throws -> Array<Pogoprotos.Networking.Requests.Messages.RecycleInventoryItemMessage> {
      var mergedArray = Array<Pogoprotos.Networking.Requests.Messages.RecycleInventoryItemMessage>()
      while let value = try parseFromDelimitedFromInputStream(input) {
        mergedArray += [value]
      }
      return mergedArray
    }
    public class func parseFromDelimitedFromInputStream(input:NSInputStream) throws -> Pogoprotos.Networking.Requests.Messages.RecycleInventoryItemMessage? {
      return try Pogoprotos.Networking.Requests.Messages.RecycleInventoryItemMessage.Builder().mergeDelimitedFromInputStream(input)?.build()
    }
    public class func parseFromData(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.RecycleInventoryItemMessage {
      return try Pogoprotos.Networking.Requests.Messages.RecycleInventoryItemMessage.Builder().mergeFromData(data, extensionRegistry:Pogoprotos.Networking.Requests.Messages.PogoprotosNetworkingRequestsMessagesRoot.sharedInstance.extensionRegistry).build()
    }
    public class func parseFromData(data:NSData, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.RecycleInventoryItemMessage {
      return try Pogoprotos.Networking.Requests.Messages.RecycleInventoryItemMessage.Builder().mergeFromData(data, extensionRegistry:extensionRegistry).build()
    }
    public class func parseFromInputStream(input:NSInputStream) throws -> Pogoprotos.Networking.Requests.Messages.RecycleInventoryItemMessage {
      return try Pogoprotos.Networking.Requests.Messages.RecycleInventoryItemMessage.Builder().mergeFromInputStream(input).build()
    }
    public class func parseFromInputStream(input:NSInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.RecycleInventoryItemMessage {
      return try Pogoprotos.Networking.Requests.Messages.RecycleInventoryItemMessage.Builder().mergeFromInputStream(input, extensionRegistry:extensionRegistry).build()
    }
    public class func parseFromCodedInputStream(input:CodedInputStream) throws -> Pogoprotos.Networking.Requests.Messages.RecycleInventoryItemMessage {
      return try Pogoprotos.Networking.Requests.Messages.RecycleInventoryItemMessage.Builder().mergeFromCodedInputStream(input).build()
    }
    public class func parseFromCodedInputStream(input:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.RecycleInventoryItemMessage {
      return try Pogoprotos.Networking.Requests.Messages.RecycleInventoryItemMessage.Builder().mergeFromCodedInputStream(input, extensionRegistry:extensionRegistry).build()
    }
    public class func getBuilder() -> Pogoprotos.Networking.Requests.Messages.RecycleInventoryItemMessage.Builder {
      return Pogoprotos.Networking.Requests.Messages.RecycleInventoryItemMessage.classBuilder() as! Pogoprotos.Networking.Requests.Messages.RecycleInventoryItemMessage.Builder
    }
    public func getBuilder() -> Pogoprotos.Networking.Requests.Messages.RecycleInventoryItemMessage.Builder {
      return classBuilder() as! Pogoprotos.Networking.Requests.Messages.RecycleInventoryItemMessage.Builder
    }
    override public class func classBuilder() -> MessageBuilder {
      return Pogoprotos.Networking.Requests.Messages.RecycleInventoryItemMessage.Builder()
    }
    override public func classBuilder() -> MessageBuilder {
      return Pogoprotos.Networking.Requests.Messages.RecycleInventoryItemMessage.Builder()
    }
    public func toBuilder() throws -> Pogoprotos.Networking.Requests.Messages.RecycleInventoryItemMessage.Builder {
      return try Pogoprotos.Networking.Requests.Messages.RecycleInventoryItemMessage.builderWithPrototype(self)
    }
    public class func builderWithPrototype(prototype:Pogoprotos.Networking.Requests.Messages.RecycleInventoryItemMessage) throws -> Pogoprotos.Networking.Requests.Messages.RecycleInventoryItemMessage.Builder {
      return try Pogoprotos.Networking.Requests.Messages.RecycleInventoryItemMessage.Builder().mergeFrom(prototype)
    }
    override public func encode() throws -> Dictionary<String,AnyObject> {
      guard isInitialized() else {
        throw ProtocolBuffersError.InvalidProtocolBuffer("Uninitialized Message")
      }

      var jsonMap:Dictionary<String,AnyObject> = Dictionary<String,AnyObject>()
      if hasItemId {
        jsonMap["itemId"] = itemId.toString()
      }
      if hasCount {
        jsonMap["count"] = NSNumber(int:count)
      }
      return jsonMap
    }
    override class public func decode(jsonMap:Dictionary<String,AnyObject>) throws -> Pogoprotos.Networking.Requests.Messages.RecycleInventoryItemMessage {
      return try Pogoprotos.Networking.Requests.Messages.RecycleInventoryItemMessage.Builder.decodeToBuilder(jsonMap).build()
    }
    override class public func fromJSON(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.RecycleInventoryItemMessage {
      return try Pogoprotos.Networking.Requests.Messages.RecycleInventoryItemMessage.Builder.fromJSONToBuilder(data).build()
    }
    override public func getDescription(indent:String) throws -> String {
      var output = ""
      if (hasItemId) {
        output += "\(indent) itemId: \(itemId.description)\n"
      }
      if hasCount {
        output += "\(indent) count: \(count) \n"
      }
      output += unknownFields.getDescription(indent)
      return output
    }
    override public var hashValue:Int {
        get {
            var hashCode:Int = 7
            if hasItemId {
               hashCode = (hashCode &* 31) &+ Int(itemId.rawValue)
            }
            if hasCount {
               hashCode = (hashCode &* 31) &+ count.hashValue
            }
            hashCode = (hashCode &* 31) &+  unknownFields.hashValue
            return hashCode
        }
    }


    //Meta information declaration start

    override public class func className() -> String {
        return "Pogoprotos.Networking.Requests.Messages.RecycleInventoryItemMessage"
    }
    override public func className() -> String {
        return "Pogoprotos.Networking.Requests.Messages.RecycleInventoryItemMessage"
    }
    override public func classMetaType() -> GeneratedMessage.Type {
        return Pogoprotos.Networking.Requests.Messages.RecycleInventoryItemMessage.self
    }
    //Meta information declaration end

    final public class Builder : GeneratedMessageBuilder {
      private var builderResult:Pogoprotos.Networking.Requests.Messages.RecycleInventoryItemMessage = Pogoprotos.Networking.Requests.Messages.RecycleInventoryItemMessage()
      public func getMessage() -> Pogoprotos.Networking.Requests.Messages.RecycleInventoryItemMessage {
          return builderResult
      }

      required override public init () {
         super.init()
      }
        public var hasItemId:Bool{
            get {
                return builderResult.hasItemId
            }
        }
        public var itemId:Pogoprotos.Inventory.Item.ItemId {
            get {
                return builderResult.itemId
            }
            set (value) {
                builderResult.hasItemId = true
                builderResult.itemId = value
            }
        }
        public func setItemId(value:Pogoprotos.Inventory.Item.ItemId) -> Pogoprotos.Networking.Requests.Messages.RecycleInventoryItemMessage.Builder {
          self.itemId = value
          return self
        }
        public func clearItemId() -> Pogoprotos.Networking.Requests.Messages.RecycleInventoryItemMessage.Builder {
           builderResult.hasItemId = false
           builderResult.itemId = .ItemUnknown
           return self
        }
      public var hasCount:Bool {
           get {
                return builderResult.hasCount
           }
      }
      public var count:Int32 {
           get {
                return builderResult.count
           }
           set (value) {
               builderResult.hasCount = true
               builderResult.count = value
           }
      }
      public func setCount(value:Int32) -> Pogoprotos.Networking.Requests.Messages.RecycleInventoryItemMessage.Builder {
        self.count = value
        return self
      }
      public func clearCount() -> Pogoprotos.Networking.Requests.Messages.RecycleInventoryItemMessage.Builder{
           builderResult.hasCount = false
           builderResult.count = Int32(0)
           return self
      }
      override public var internalGetResult:GeneratedMessage {
           get {
              return builderResult
           }
      }
      override public func clear() -> Pogoprotos.Networking.Requests.Messages.RecycleInventoryItemMessage.Builder {
        builderResult = Pogoprotos.Networking.Requests.Messages.RecycleInventoryItemMessage()
        return self
      }
      override public func clone() throws -> Pogoprotos.Networking.Requests.Messages.RecycleInventoryItemMessage.Builder {
        return try Pogoprotos.Networking.Requests.Messages.RecycleInventoryItemMessage.builderWithPrototype(builderResult)
      }
      override public func build() throws -> Pogoprotos.Networking.Requests.Messages.RecycleInventoryItemMessage {
           try checkInitialized()
           return buildPartial()
      }
      public func buildPartial() -> Pogoprotos.Networking.Requests.Messages.RecycleInventoryItemMessage {
        let returnMe:Pogoprotos.Networking.Requests.Messages.RecycleInventoryItemMessage = builderResult
        return returnMe
      }
      public func mergeFrom(other:Pogoprotos.Networking.Requests.Messages.RecycleInventoryItemMessage) throws -> Pogoprotos.Networking.Requests.Messages.RecycleInventoryItemMessage.Builder {
        if other == Pogoprotos.Networking.Requests.Messages.RecycleInventoryItemMessage() {
         return self
        }
        if other.hasItemId {
             itemId = other.itemId
        }
        if other.hasCount {
             count = other.count
        }
        try mergeUnknownFields(other.unknownFields)
        return self
      }
      override public func mergeFromCodedInputStream(input:CodedInputStream) throws -> Pogoprotos.Networking.Requests.Messages.RecycleInventoryItemMessage.Builder {
           return try mergeFromCodedInputStream(input, extensionRegistry:ExtensionRegistry())
      }
      override public func mergeFromCodedInputStream(input:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.RecycleInventoryItemMessage.Builder {
        let unknownFieldsBuilder:UnknownFieldSet.Builder = try UnknownFieldSet.builderWithUnknownFields(self.unknownFields)
        while (true) {
          let protobufTag = try input.readTag()
          switch protobufTag {
          case 0: 
            self.unknownFields = try unknownFieldsBuilder.build()
            return self

          case 8:
            let valueIntitemId = try input.readEnum()
            if let enumsitemId = Pogoprotos.Inventory.Item.ItemId(rawValue:valueIntitemId){
                 itemId = enumsitemId
            } else {
                 try unknownFieldsBuilder.mergeVarintField(1, value:Int64(valueIntitemId))
            }

          case 16:
            count = try input.readInt32()

          default:
            if (!(try parseUnknownField(input,unknownFields:unknownFieldsBuilder, extensionRegistry:extensionRegistry, tag:protobufTag))) {
               unknownFields = try unknownFieldsBuilder.build()
               return self
            }
          }
        }
      }
      override class public func decodeToBuilder(jsonMap:Dictionary<String,AnyObject>) throws -> Pogoprotos.Networking.Requests.Messages.RecycleInventoryItemMessage.Builder {
        let resultDecodedBuilder = Pogoprotos.Networking.Requests.Messages.RecycleInventoryItemMessage.Builder()
        if let jsonValueItemId = jsonMap["itemId"] as? String {
          resultDecodedBuilder.itemId = try Pogoprotos.Inventory.Item.ItemId.fromString(jsonValueItemId)
        }
        if let jsonValueCount = jsonMap["count"] as? NSNumber {
          resultDecodedBuilder.count = jsonValueCount.intValue
        }
        return resultDecodedBuilder
      }
      override class public func fromJSONToBuilder(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.RecycleInventoryItemMessage.Builder {
        let jsonData = try NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions(rawValue: 0))
        guard let jsDataCast = jsonData as? Dictionary<String,AnyObject> else {
          throw ProtocolBuffersError.InvalidProtocolBuffer("Invalid JSON data")
        }
        return try Pogoprotos.Networking.Requests.Messages.RecycleInventoryItemMessage.Builder.decodeToBuilder(jsDataCast)
      }
    }

  }

  final public class ReleasePokemonMessage : GeneratedMessage, GeneratedMessageProtocol {
    public private(set) var hasPokemonId:Bool = false
    public private(set) var pokemonId:UInt64 = UInt64(0)

    required public init() {
         super.init()
    }
    override public func isInitialized() -> Bool {
     return true
    }
    override public func writeToCodedOutputStream(output:CodedOutputStream) throws {
      if hasPokemonId {
        try output.writeFixed64(1, value:pokemonId)
      }
      try unknownFields.writeToCodedOutputStream(output)
    }
    override public func serializedSize() -> Int32 {
      var serialize_size:Int32 = memoizedSerializedSize
      if serialize_size != -1 {
       return serialize_size
      }

      serialize_size = 0
      if hasPokemonId {
        serialize_size += pokemonId.computeFixed64Size(1)
      }
      serialize_size += unknownFields.serializedSize()
      memoizedSerializedSize = serialize_size
      return serialize_size
    }
    public class func parseArrayDelimitedFromInputStream(input:NSInputStream) throws -> Array<Pogoprotos.Networking.Requests.Messages.ReleasePokemonMessage> {
      var mergedArray = Array<Pogoprotos.Networking.Requests.Messages.ReleasePokemonMessage>()
      while let value = try parseFromDelimitedFromInputStream(input) {
        mergedArray += [value]
      }
      return mergedArray
    }
    public class func parseFromDelimitedFromInputStream(input:NSInputStream) throws -> Pogoprotos.Networking.Requests.Messages.ReleasePokemonMessage? {
      return try Pogoprotos.Networking.Requests.Messages.ReleasePokemonMessage.Builder().mergeDelimitedFromInputStream(input)?.build()
    }
    public class func parseFromData(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.ReleasePokemonMessage {
      return try Pogoprotos.Networking.Requests.Messages.ReleasePokemonMessage.Builder().mergeFromData(data, extensionRegistry:Pogoprotos.Networking.Requests.Messages.PogoprotosNetworkingRequestsMessagesRoot.sharedInstance.extensionRegistry).build()
    }
    public class func parseFromData(data:NSData, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.ReleasePokemonMessage {
      return try Pogoprotos.Networking.Requests.Messages.ReleasePokemonMessage.Builder().mergeFromData(data, extensionRegistry:extensionRegistry).build()
    }
    public class func parseFromInputStream(input:NSInputStream) throws -> Pogoprotos.Networking.Requests.Messages.ReleasePokemonMessage {
      return try Pogoprotos.Networking.Requests.Messages.ReleasePokemonMessage.Builder().mergeFromInputStream(input).build()
    }
    public class func parseFromInputStream(input:NSInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.ReleasePokemonMessage {
      return try Pogoprotos.Networking.Requests.Messages.ReleasePokemonMessage.Builder().mergeFromInputStream(input, extensionRegistry:extensionRegistry).build()
    }
    public class func parseFromCodedInputStream(input:CodedInputStream) throws -> Pogoprotos.Networking.Requests.Messages.ReleasePokemonMessage {
      return try Pogoprotos.Networking.Requests.Messages.ReleasePokemonMessage.Builder().mergeFromCodedInputStream(input).build()
    }
    public class func parseFromCodedInputStream(input:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.ReleasePokemonMessage {
      return try Pogoprotos.Networking.Requests.Messages.ReleasePokemonMessage.Builder().mergeFromCodedInputStream(input, extensionRegistry:extensionRegistry).build()
    }
    public class func getBuilder() -> Pogoprotos.Networking.Requests.Messages.ReleasePokemonMessage.Builder {
      return Pogoprotos.Networking.Requests.Messages.ReleasePokemonMessage.classBuilder() as! Pogoprotos.Networking.Requests.Messages.ReleasePokemonMessage.Builder
    }
    public func getBuilder() -> Pogoprotos.Networking.Requests.Messages.ReleasePokemonMessage.Builder {
      return classBuilder() as! Pogoprotos.Networking.Requests.Messages.ReleasePokemonMessage.Builder
    }
    override public class func classBuilder() -> MessageBuilder {
      return Pogoprotos.Networking.Requests.Messages.ReleasePokemonMessage.Builder()
    }
    override public func classBuilder() -> MessageBuilder {
      return Pogoprotos.Networking.Requests.Messages.ReleasePokemonMessage.Builder()
    }
    public func toBuilder() throws -> Pogoprotos.Networking.Requests.Messages.ReleasePokemonMessage.Builder {
      return try Pogoprotos.Networking.Requests.Messages.ReleasePokemonMessage.builderWithPrototype(self)
    }
    public class func builderWithPrototype(prototype:Pogoprotos.Networking.Requests.Messages.ReleasePokemonMessage) throws -> Pogoprotos.Networking.Requests.Messages.ReleasePokemonMessage.Builder {
      return try Pogoprotos.Networking.Requests.Messages.ReleasePokemonMessage.Builder().mergeFrom(prototype)
    }
    override public func encode() throws -> Dictionary<String,AnyObject> {
      guard isInitialized() else {
        throw ProtocolBuffersError.InvalidProtocolBuffer("Uninitialized Message")
      }

      var jsonMap:Dictionary<String,AnyObject> = Dictionary<String,AnyObject>()
      if hasPokemonId {
        jsonMap["pokemonId"] = "\(pokemonId)"
      }
      return jsonMap
    }
    override class public func decode(jsonMap:Dictionary<String,AnyObject>) throws -> Pogoprotos.Networking.Requests.Messages.ReleasePokemonMessage {
      return try Pogoprotos.Networking.Requests.Messages.ReleasePokemonMessage.Builder.decodeToBuilder(jsonMap).build()
    }
    override class public func fromJSON(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.ReleasePokemonMessage {
      return try Pogoprotos.Networking.Requests.Messages.ReleasePokemonMessage.Builder.fromJSONToBuilder(data).build()
    }
    override public func getDescription(indent:String) throws -> String {
      var output = ""
      if hasPokemonId {
        output += "\(indent) pokemonId: \(pokemonId) \n"
      }
      output += unknownFields.getDescription(indent)
      return output
    }
    override public var hashValue:Int {
        get {
            var hashCode:Int = 7
            if hasPokemonId {
               hashCode = (hashCode &* 31) &+ pokemonId.hashValue
            }
            hashCode = (hashCode &* 31) &+  unknownFields.hashValue
            return hashCode
        }
    }


    //Meta information declaration start

    override public class func className() -> String {
        return "Pogoprotos.Networking.Requests.Messages.ReleasePokemonMessage"
    }
    override public func className() -> String {
        return "Pogoprotos.Networking.Requests.Messages.ReleasePokemonMessage"
    }
    override public func classMetaType() -> GeneratedMessage.Type {
        return Pogoprotos.Networking.Requests.Messages.ReleasePokemonMessage.self
    }
    //Meta information declaration end

    final public class Builder : GeneratedMessageBuilder {
      private var builderResult:Pogoprotos.Networking.Requests.Messages.ReleasePokemonMessage = Pogoprotos.Networking.Requests.Messages.ReleasePokemonMessage()
      public func getMessage() -> Pogoprotos.Networking.Requests.Messages.ReleasePokemonMessage {
          return builderResult
      }

      required override public init () {
         super.init()
      }
      public var hasPokemonId:Bool {
           get {
                return builderResult.hasPokemonId
           }
      }
      public var pokemonId:UInt64 {
           get {
                return builderResult.pokemonId
           }
           set (value) {
               builderResult.hasPokemonId = true
               builderResult.pokemonId = value
           }
      }
      public func setPokemonId(value:UInt64) -> Pogoprotos.Networking.Requests.Messages.ReleasePokemonMessage.Builder {
        self.pokemonId = value
        return self
      }
      public func clearPokemonId() -> Pogoprotos.Networking.Requests.Messages.ReleasePokemonMessage.Builder{
           builderResult.hasPokemonId = false
           builderResult.pokemonId = UInt64(0)
           return self
      }
      override public var internalGetResult:GeneratedMessage {
           get {
              return builderResult
           }
      }
      override public func clear() -> Pogoprotos.Networking.Requests.Messages.ReleasePokemonMessage.Builder {
        builderResult = Pogoprotos.Networking.Requests.Messages.ReleasePokemonMessage()
        return self
      }
      override public func clone() throws -> Pogoprotos.Networking.Requests.Messages.ReleasePokemonMessage.Builder {
        return try Pogoprotos.Networking.Requests.Messages.ReleasePokemonMessage.builderWithPrototype(builderResult)
      }
      override public func build() throws -> Pogoprotos.Networking.Requests.Messages.ReleasePokemonMessage {
           try checkInitialized()
           return buildPartial()
      }
      public func buildPartial() -> Pogoprotos.Networking.Requests.Messages.ReleasePokemonMessage {
        let returnMe:Pogoprotos.Networking.Requests.Messages.ReleasePokemonMessage = builderResult
        return returnMe
      }
      public func mergeFrom(other:Pogoprotos.Networking.Requests.Messages.ReleasePokemonMessage) throws -> Pogoprotos.Networking.Requests.Messages.ReleasePokemonMessage.Builder {
        if other == Pogoprotos.Networking.Requests.Messages.ReleasePokemonMessage() {
         return self
        }
        if other.hasPokemonId {
             pokemonId = other.pokemonId
        }
        try mergeUnknownFields(other.unknownFields)
        return self
      }
      override public func mergeFromCodedInputStream(input:CodedInputStream) throws -> Pogoprotos.Networking.Requests.Messages.ReleasePokemonMessage.Builder {
           return try mergeFromCodedInputStream(input, extensionRegistry:ExtensionRegistry())
      }
      override public func mergeFromCodedInputStream(input:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.ReleasePokemonMessage.Builder {
        let unknownFieldsBuilder:UnknownFieldSet.Builder = try UnknownFieldSet.builderWithUnknownFields(self.unknownFields)
        while (true) {
          let protobufTag = try input.readTag()
          switch protobufTag {
          case 0: 
            self.unknownFields = try unknownFieldsBuilder.build()
            return self

          case 9:
            pokemonId = try input.readFixed64()

          default:
            if (!(try parseUnknownField(input,unknownFields:unknownFieldsBuilder, extensionRegistry:extensionRegistry, tag:protobufTag))) {
               unknownFields = try unknownFieldsBuilder.build()
               return self
            }
          }
        }
      }
      override class public func decodeToBuilder(jsonMap:Dictionary<String,AnyObject>) throws -> Pogoprotos.Networking.Requests.Messages.ReleasePokemonMessage.Builder {
        let resultDecodedBuilder = Pogoprotos.Networking.Requests.Messages.ReleasePokemonMessage.Builder()
        if let jsonValuePokemonId = jsonMap["pokemonId"] as? String {
          resultDecodedBuilder.pokemonId = UInt64(jsonValuePokemonId)!
        }
        return resultDecodedBuilder
      }
      override class public func fromJSONToBuilder(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.ReleasePokemonMessage.Builder {
        let jsonData = try NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions(rawValue: 0))
        guard let jsDataCast = jsonData as? Dictionary<String,AnyObject> else {
          throw ProtocolBuffersError.InvalidProtocolBuffer("Invalid JSON data")
        }
        return try Pogoprotos.Networking.Requests.Messages.ReleasePokemonMessage.Builder.decodeToBuilder(jsDataCast)
      }
    }

  }

  final public class SetAvatarMessage : GeneratedMessage, GeneratedMessageProtocol {
    public private(set) var hasPlayerAvatar:Bool = false
    public private(set) var playerAvatar:Pogoprotos.Data.Player.PlayerAvatar!
    required public init() {
         super.init()
    }
    override public func isInitialized() -> Bool {
     return true
    }
    override public func writeToCodedOutputStream(output:CodedOutputStream) throws {
      if hasPlayerAvatar {
        try output.writeMessage(2, value:playerAvatar)
      }
      try unknownFields.writeToCodedOutputStream(output)
    }
    override public func serializedSize() -> Int32 {
      var serialize_size:Int32 = memoizedSerializedSize
      if serialize_size != -1 {
       return serialize_size
      }

      serialize_size = 0
      if hasPlayerAvatar {
          if let varSizeplayerAvatar = playerAvatar?.computeMessageSize(2) {
              serialize_size += varSizeplayerAvatar
          }
      }
      serialize_size += unknownFields.serializedSize()
      memoizedSerializedSize = serialize_size
      return serialize_size
    }
    public class func parseArrayDelimitedFromInputStream(input:NSInputStream) throws -> Array<Pogoprotos.Networking.Requests.Messages.SetAvatarMessage> {
      var mergedArray = Array<Pogoprotos.Networking.Requests.Messages.SetAvatarMessage>()
      while let value = try parseFromDelimitedFromInputStream(input) {
        mergedArray += [value]
      }
      return mergedArray
    }
    public class func parseFromDelimitedFromInputStream(input:NSInputStream) throws -> Pogoprotos.Networking.Requests.Messages.SetAvatarMessage? {
      return try Pogoprotos.Networking.Requests.Messages.SetAvatarMessage.Builder().mergeDelimitedFromInputStream(input)?.build()
    }
    public class func parseFromData(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.SetAvatarMessage {
      return try Pogoprotos.Networking.Requests.Messages.SetAvatarMessage.Builder().mergeFromData(data, extensionRegistry:Pogoprotos.Networking.Requests.Messages.PogoprotosNetworkingRequestsMessagesRoot.sharedInstance.extensionRegistry).build()
    }
    public class func parseFromData(data:NSData, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.SetAvatarMessage {
      return try Pogoprotos.Networking.Requests.Messages.SetAvatarMessage.Builder().mergeFromData(data, extensionRegistry:extensionRegistry).build()
    }
    public class func parseFromInputStream(input:NSInputStream) throws -> Pogoprotos.Networking.Requests.Messages.SetAvatarMessage {
      return try Pogoprotos.Networking.Requests.Messages.SetAvatarMessage.Builder().mergeFromInputStream(input).build()
    }
    public class func parseFromInputStream(input:NSInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.SetAvatarMessage {
      return try Pogoprotos.Networking.Requests.Messages.SetAvatarMessage.Builder().mergeFromInputStream(input, extensionRegistry:extensionRegistry).build()
    }
    public class func parseFromCodedInputStream(input:CodedInputStream) throws -> Pogoprotos.Networking.Requests.Messages.SetAvatarMessage {
      return try Pogoprotos.Networking.Requests.Messages.SetAvatarMessage.Builder().mergeFromCodedInputStream(input).build()
    }
    public class func parseFromCodedInputStream(input:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.SetAvatarMessage {
      return try Pogoprotos.Networking.Requests.Messages.SetAvatarMessage.Builder().mergeFromCodedInputStream(input, extensionRegistry:extensionRegistry).build()
    }
    public class func getBuilder() -> Pogoprotos.Networking.Requests.Messages.SetAvatarMessage.Builder {
      return Pogoprotos.Networking.Requests.Messages.SetAvatarMessage.classBuilder() as! Pogoprotos.Networking.Requests.Messages.SetAvatarMessage.Builder
    }
    public func getBuilder() -> Pogoprotos.Networking.Requests.Messages.SetAvatarMessage.Builder {
      return classBuilder() as! Pogoprotos.Networking.Requests.Messages.SetAvatarMessage.Builder
    }
    override public class func classBuilder() -> MessageBuilder {
      return Pogoprotos.Networking.Requests.Messages.SetAvatarMessage.Builder()
    }
    override public func classBuilder() -> MessageBuilder {
      return Pogoprotos.Networking.Requests.Messages.SetAvatarMessage.Builder()
    }
    public func toBuilder() throws -> Pogoprotos.Networking.Requests.Messages.SetAvatarMessage.Builder {
      return try Pogoprotos.Networking.Requests.Messages.SetAvatarMessage.builderWithPrototype(self)
    }
    public class func builderWithPrototype(prototype:Pogoprotos.Networking.Requests.Messages.SetAvatarMessage) throws -> Pogoprotos.Networking.Requests.Messages.SetAvatarMessage.Builder {
      return try Pogoprotos.Networking.Requests.Messages.SetAvatarMessage.Builder().mergeFrom(prototype)
    }
    override public func encode() throws -> Dictionary<String,AnyObject> {
      guard isInitialized() else {
        throw ProtocolBuffersError.InvalidProtocolBuffer("Uninitialized Message")
      }

      var jsonMap:Dictionary<String,AnyObject> = Dictionary<String,AnyObject>()
      if hasPlayerAvatar {
        jsonMap["playerAvatar"] = try playerAvatar.encode()
      }
      return jsonMap
    }
    override class public func decode(jsonMap:Dictionary<String,AnyObject>) throws -> Pogoprotos.Networking.Requests.Messages.SetAvatarMessage {
      return try Pogoprotos.Networking.Requests.Messages.SetAvatarMessage.Builder.decodeToBuilder(jsonMap).build()
    }
    override class public func fromJSON(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.SetAvatarMessage {
      return try Pogoprotos.Networking.Requests.Messages.SetAvatarMessage.Builder.fromJSONToBuilder(data).build()
    }
    override public func getDescription(indent:String) throws -> String {
      var output = ""
      if hasPlayerAvatar {
        output += "\(indent) playerAvatar {\n"
        if let outDescPlayerAvatar = playerAvatar {
          output += try outDescPlayerAvatar.getDescription("\(indent)  ")
        }
        output += "\(indent) }\n"
      }
      output += unknownFields.getDescription(indent)
      return output
    }
    override public var hashValue:Int {
        get {
            var hashCode:Int = 7
            if hasPlayerAvatar {
                if let hashValueplayerAvatar = playerAvatar?.hashValue {
                    hashCode = (hashCode &* 31) &+ hashValueplayerAvatar
                }
            }
            hashCode = (hashCode &* 31) &+  unknownFields.hashValue
            return hashCode
        }
    }


    //Meta information declaration start

    override public class func className() -> String {
        return "Pogoprotos.Networking.Requests.Messages.SetAvatarMessage"
    }
    override public func className() -> String {
        return "Pogoprotos.Networking.Requests.Messages.SetAvatarMessage"
    }
    override public func classMetaType() -> GeneratedMessage.Type {
        return Pogoprotos.Networking.Requests.Messages.SetAvatarMessage.self
    }
    //Meta information declaration end

    final public class Builder : GeneratedMessageBuilder {
      private var builderResult:Pogoprotos.Networking.Requests.Messages.SetAvatarMessage = Pogoprotos.Networking.Requests.Messages.SetAvatarMessage()
      public func getMessage() -> Pogoprotos.Networking.Requests.Messages.SetAvatarMessage {
          return builderResult
      }

      required override public init () {
         super.init()
      }
      public var hasPlayerAvatar:Bool {
           get {
               return builderResult.hasPlayerAvatar
           }
      }
      public var playerAvatar:Pogoprotos.Data.Player.PlayerAvatar! {
           get {
               if playerAvatarBuilder_ != nil {
                  builderResult.playerAvatar = playerAvatarBuilder_.getMessage()
               }
               return builderResult.playerAvatar
           }
           set (value) {
               builderResult.hasPlayerAvatar = true
               builderResult.playerAvatar = value
           }
      }
      private var playerAvatarBuilder_:Pogoprotos.Data.Player.PlayerAvatar.Builder! {
           didSet {
              builderResult.hasPlayerAvatar = true
           }
      }
      public func getPlayerAvatarBuilder() -> Pogoprotos.Data.Player.PlayerAvatar.Builder {
        if playerAvatarBuilder_ == nil {
           playerAvatarBuilder_ = Pogoprotos.Data.Player.PlayerAvatar.Builder()
           builderResult.playerAvatar = playerAvatarBuilder_.getMessage()
           if playerAvatar != nil {
              try! playerAvatarBuilder_.mergeFrom(playerAvatar)
           }
        }
        return playerAvatarBuilder_
      }
      public func setPlayerAvatar(value:Pogoprotos.Data.Player.PlayerAvatar!) -> Pogoprotos.Networking.Requests.Messages.SetAvatarMessage.Builder {
        self.playerAvatar = value
        return self
      }
      public func mergePlayerAvatar(value:Pogoprotos.Data.Player.PlayerAvatar) throws -> Pogoprotos.Networking.Requests.Messages.SetAvatarMessage.Builder {
        if builderResult.hasPlayerAvatar {
          builderResult.playerAvatar = try Pogoprotos.Data.Player.PlayerAvatar.builderWithPrototype(builderResult.playerAvatar).mergeFrom(value).buildPartial()
        } else {
          builderResult.playerAvatar = value
        }
        builderResult.hasPlayerAvatar = true
        return self
      }
      public func clearPlayerAvatar() -> Pogoprotos.Networking.Requests.Messages.SetAvatarMessage.Builder {
        playerAvatarBuilder_ = nil
        builderResult.hasPlayerAvatar = false
        builderResult.playerAvatar = nil
        return self
      }
      override public var internalGetResult:GeneratedMessage {
           get {
              return builderResult
           }
      }
      override public func clear() -> Pogoprotos.Networking.Requests.Messages.SetAvatarMessage.Builder {
        builderResult = Pogoprotos.Networking.Requests.Messages.SetAvatarMessage()
        return self
      }
      override public func clone() throws -> Pogoprotos.Networking.Requests.Messages.SetAvatarMessage.Builder {
        return try Pogoprotos.Networking.Requests.Messages.SetAvatarMessage.builderWithPrototype(builderResult)
      }
      override public func build() throws -> Pogoprotos.Networking.Requests.Messages.SetAvatarMessage {
           try checkInitialized()
           return buildPartial()
      }
      public func buildPartial() -> Pogoprotos.Networking.Requests.Messages.SetAvatarMessage {
        let returnMe:Pogoprotos.Networking.Requests.Messages.SetAvatarMessage = builderResult
        return returnMe
      }
      public func mergeFrom(other:Pogoprotos.Networking.Requests.Messages.SetAvatarMessage) throws -> Pogoprotos.Networking.Requests.Messages.SetAvatarMessage.Builder {
        if other == Pogoprotos.Networking.Requests.Messages.SetAvatarMessage() {
         return self
        }
        if (other.hasPlayerAvatar) {
            try mergePlayerAvatar(other.playerAvatar)
        }
        try mergeUnknownFields(other.unknownFields)
        return self
      }
      override public func mergeFromCodedInputStream(input:CodedInputStream) throws -> Pogoprotos.Networking.Requests.Messages.SetAvatarMessage.Builder {
           return try mergeFromCodedInputStream(input, extensionRegistry:ExtensionRegistry())
      }
      override public func mergeFromCodedInputStream(input:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.SetAvatarMessage.Builder {
        let unknownFieldsBuilder:UnknownFieldSet.Builder = try UnknownFieldSet.builderWithUnknownFields(self.unknownFields)
        while (true) {
          let protobufTag = try input.readTag()
          switch protobufTag {
          case 0: 
            self.unknownFields = try unknownFieldsBuilder.build()
            return self

          case 18:
            let subBuilder:Pogoprotos.Data.Player.PlayerAvatar.Builder = Pogoprotos.Data.Player.PlayerAvatar.Builder()
            if hasPlayerAvatar {
              try subBuilder.mergeFrom(playerAvatar)
            }
            try input.readMessage(subBuilder, extensionRegistry:extensionRegistry)
            playerAvatar = subBuilder.buildPartial()

          default:
            if (!(try parseUnknownField(input,unknownFields:unknownFieldsBuilder, extensionRegistry:extensionRegistry, tag:protobufTag))) {
               unknownFields = try unknownFieldsBuilder.build()
               return self
            }
          }
        }
      }
      override class public func decodeToBuilder(jsonMap:Dictionary<String,AnyObject>) throws -> Pogoprotos.Networking.Requests.Messages.SetAvatarMessage.Builder {
        let resultDecodedBuilder = Pogoprotos.Networking.Requests.Messages.SetAvatarMessage.Builder()
        if let jsonValuePlayerAvatar = jsonMap["playerAvatar"] as? Dictionary<String,AnyObject> {
          resultDecodedBuilder.playerAvatar = try Pogoprotos.Data.Player.PlayerAvatar.Builder.decodeToBuilder(jsonValuePlayerAvatar).build()

        }
        return resultDecodedBuilder
      }
      override class public func fromJSONToBuilder(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.SetAvatarMessage.Builder {
        let jsonData = try NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions(rawValue: 0))
        guard let jsDataCast = jsonData as? Dictionary<String,AnyObject> else {
          throw ProtocolBuffersError.InvalidProtocolBuffer("Invalid JSON data")
        }
        return try Pogoprotos.Networking.Requests.Messages.SetAvatarMessage.Builder.decodeToBuilder(jsDataCast)
      }
    }

  }

  final public class SetContactSettingsMessage : GeneratedMessage, GeneratedMessageProtocol {
    public private(set) var hasContactSettings:Bool = false
    public private(set) var contactSettings:Pogoprotos.Data.Player.ContactSettings!
    required public init() {
         super.init()
    }
    override public func isInitialized() -> Bool {
     return true
    }
    override public func writeToCodedOutputStream(output:CodedOutputStream) throws {
      if hasContactSettings {
        try output.writeMessage(1, value:contactSettings)
      }
      try unknownFields.writeToCodedOutputStream(output)
    }
    override public func serializedSize() -> Int32 {
      var serialize_size:Int32 = memoizedSerializedSize
      if serialize_size != -1 {
       return serialize_size
      }

      serialize_size = 0
      if hasContactSettings {
          if let varSizecontactSettings = contactSettings?.computeMessageSize(1) {
              serialize_size += varSizecontactSettings
          }
      }
      serialize_size += unknownFields.serializedSize()
      memoizedSerializedSize = serialize_size
      return serialize_size
    }
    public class func parseArrayDelimitedFromInputStream(input:NSInputStream) throws -> Array<Pogoprotos.Networking.Requests.Messages.SetContactSettingsMessage> {
      var mergedArray = Array<Pogoprotos.Networking.Requests.Messages.SetContactSettingsMessage>()
      while let value = try parseFromDelimitedFromInputStream(input) {
        mergedArray += [value]
      }
      return mergedArray
    }
    public class func parseFromDelimitedFromInputStream(input:NSInputStream) throws -> Pogoprotos.Networking.Requests.Messages.SetContactSettingsMessage? {
      return try Pogoprotos.Networking.Requests.Messages.SetContactSettingsMessage.Builder().mergeDelimitedFromInputStream(input)?.build()
    }
    public class func parseFromData(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.SetContactSettingsMessage {
      return try Pogoprotos.Networking.Requests.Messages.SetContactSettingsMessage.Builder().mergeFromData(data, extensionRegistry:Pogoprotos.Networking.Requests.Messages.PogoprotosNetworkingRequestsMessagesRoot.sharedInstance.extensionRegistry).build()
    }
    public class func parseFromData(data:NSData, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.SetContactSettingsMessage {
      return try Pogoprotos.Networking.Requests.Messages.SetContactSettingsMessage.Builder().mergeFromData(data, extensionRegistry:extensionRegistry).build()
    }
    public class func parseFromInputStream(input:NSInputStream) throws -> Pogoprotos.Networking.Requests.Messages.SetContactSettingsMessage {
      return try Pogoprotos.Networking.Requests.Messages.SetContactSettingsMessage.Builder().mergeFromInputStream(input).build()
    }
    public class func parseFromInputStream(input:NSInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.SetContactSettingsMessage {
      return try Pogoprotos.Networking.Requests.Messages.SetContactSettingsMessage.Builder().mergeFromInputStream(input, extensionRegistry:extensionRegistry).build()
    }
    public class func parseFromCodedInputStream(input:CodedInputStream) throws -> Pogoprotos.Networking.Requests.Messages.SetContactSettingsMessage {
      return try Pogoprotos.Networking.Requests.Messages.SetContactSettingsMessage.Builder().mergeFromCodedInputStream(input).build()
    }
    public class func parseFromCodedInputStream(input:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.SetContactSettingsMessage {
      return try Pogoprotos.Networking.Requests.Messages.SetContactSettingsMessage.Builder().mergeFromCodedInputStream(input, extensionRegistry:extensionRegistry).build()
    }
    public class func getBuilder() -> Pogoprotos.Networking.Requests.Messages.SetContactSettingsMessage.Builder {
      return Pogoprotos.Networking.Requests.Messages.SetContactSettingsMessage.classBuilder() as! Pogoprotos.Networking.Requests.Messages.SetContactSettingsMessage.Builder
    }
    public func getBuilder() -> Pogoprotos.Networking.Requests.Messages.SetContactSettingsMessage.Builder {
      return classBuilder() as! Pogoprotos.Networking.Requests.Messages.SetContactSettingsMessage.Builder
    }
    override public class func classBuilder() -> MessageBuilder {
      return Pogoprotos.Networking.Requests.Messages.SetContactSettingsMessage.Builder()
    }
    override public func classBuilder() -> MessageBuilder {
      return Pogoprotos.Networking.Requests.Messages.SetContactSettingsMessage.Builder()
    }
    public func toBuilder() throws -> Pogoprotos.Networking.Requests.Messages.SetContactSettingsMessage.Builder {
      return try Pogoprotos.Networking.Requests.Messages.SetContactSettingsMessage.builderWithPrototype(self)
    }
    public class func builderWithPrototype(prototype:Pogoprotos.Networking.Requests.Messages.SetContactSettingsMessage) throws -> Pogoprotos.Networking.Requests.Messages.SetContactSettingsMessage.Builder {
      return try Pogoprotos.Networking.Requests.Messages.SetContactSettingsMessage.Builder().mergeFrom(prototype)
    }
    override public func encode() throws -> Dictionary<String,AnyObject> {
      guard isInitialized() else {
        throw ProtocolBuffersError.InvalidProtocolBuffer("Uninitialized Message")
      }

      var jsonMap:Dictionary<String,AnyObject> = Dictionary<String,AnyObject>()
      if hasContactSettings {
        jsonMap["contactSettings"] = try contactSettings.encode()
      }
      return jsonMap
    }
    override class public func decode(jsonMap:Dictionary<String,AnyObject>) throws -> Pogoprotos.Networking.Requests.Messages.SetContactSettingsMessage {
      return try Pogoprotos.Networking.Requests.Messages.SetContactSettingsMessage.Builder.decodeToBuilder(jsonMap).build()
    }
    override class public func fromJSON(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.SetContactSettingsMessage {
      return try Pogoprotos.Networking.Requests.Messages.SetContactSettingsMessage.Builder.fromJSONToBuilder(data).build()
    }
    override public func getDescription(indent:String) throws -> String {
      var output = ""
      if hasContactSettings {
        output += "\(indent) contactSettings {\n"
        if let outDescContactSettings = contactSettings {
          output += try outDescContactSettings.getDescription("\(indent)  ")
        }
        output += "\(indent) }\n"
      }
      output += unknownFields.getDescription(indent)
      return output
    }
    override public var hashValue:Int {
        get {
            var hashCode:Int = 7
            if hasContactSettings {
                if let hashValuecontactSettings = contactSettings?.hashValue {
                    hashCode = (hashCode &* 31) &+ hashValuecontactSettings
                }
            }
            hashCode = (hashCode &* 31) &+  unknownFields.hashValue
            return hashCode
        }
    }


    //Meta information declaration start

    override public class func className() -> String {
        return "Pogoprotos.Networking.Requests.Messages.SetContactSettingsMessage"
    }
    override public func className() -> String {
        return "Pogoprotos.Networking.Requests.Messages.SetContactSettingsMessage"
    }
    override public func classMetaType() -> GeneratedMessage.Type {
        return Pogoprotos.Networking.Requests.Messages.SetContactSettingsMessage.self
    }
    //Meta information declaration end

    final public class Builder : GeneratedMessageBuilder {
      private var builderResult:Pogoprotos.Networking.Requests.Messages.SetContactSettingsMessage = Pogoprotos.Networking.Requests.Messages.SetContactSettingsMessage()
      public func getMessage() -> Pogoprotos.Networking.Requests.Messages.SetContactSettingsMessage {
          return builderResult
      }

      required override public init () {
         super.init()
      }
      public var hasContactSettings:Bool {
           get {
               return builderResult.hasContactSettings
           }
      }
      public var contactSettings:Pogoprotos.Data.Player.ContactSettings! {
           get {
               if contactSettingsBuilder_ != nil {
                  builderResult.contactSettings = contactSettingsBuilder_.getMessage()
               }
               return builderResult.contactSettings
           }
           set (value) {
               builderResult.hasContactSettings = true
               builderResult.contactSettings = value
           }
      }
      private var contactSettingsBuilder_:Pogoprotos.Data.Player.ContactSettings.Builder! {
           didSet {
              builderResult.hasContactSettings = true
           }
      }
      public func getContactSettingsBuilder() -> Pogoprotos.Data.Player.ContactSettings.Builder {
        if contactSettingsBuilder_ == nil {
           contactSettingsBuilder_ = Pogoprotos.Data.Player.ContactSettings.Builder()
           builderResult.contactSettings = contactSettingsBuilder_.getMessage()
           if contactSettings != nil {
              try! contactSettingsBuilder_.mergeFrom(contactSettings)
           }
        }
        return contactSettingsBuilder_
      }
      public func setContactSettings(value:Pogoprotos.Data.Player.ContactSettings!) -> Pogoprotos.Networking.Requests.Messages.SetContactSettingsMessage.Builder {
        self.contactSettings = value
        return self
      }
      public func mergeContactSettings(value:Pogoprotos.Data.Player.ContactSettings) throws -> Pogoprotos.Networking.Requests.Messages.SetContactSettingsMessage.Builder {
        if builderResult.hasContactSettings {
          builderResult.contactSettings = try Pogoprotos.Data.Player.ContactSettings.builderWithPrototype(builderResult.contactSettings).mergeFrom(value).buildPartial()
        } else {
          builderResult.contactSettings = value
        }
        builderResult.hasContactSettings = true
        return self
      }
      public func clearContactSettings() -> Pogoprotos.Networking.Requests.Messages.SetContactSettingsMessage.Builder {
        contactSettingsBuilder_ = nil
        builderResult.hasContactSettings = false
        builderResult.contactSettings = nil
        return self
      }
      override public var internalGetResult:GeneratedMessage {
           get {
              return builderResult
           }
      }
      override public func clear() -> Pogoprotos.Networking.Requests.Messages.SetContactSettingsMessage.Builder {
        builderResult = Pogoprotos.Networking.Requests.Messages.SetContactSettingsMessage()
        return self
      }
      override public func clone() throws -> Pogoprotos.Networking.Requests.Messages.SetContactSettingsMessage.Builder {
        return try Pogoprotos.Networking.Requests.Messages.SetContactSettingsMessage.builderWithPrototype(builderResult)
      }
      override public func build() throws -> Pogoprotos.Networking.Requests.Messages.SetContactSettingsMessage {
           try checkInitialized()
           return buildPartial()
      }
      public func buildPartial() -> Pogoprotos.Networking.Requests.Messages.SetContactSettingsMessage {
        let returnMe:Pogoprotos.Networking.Requests.Messages.SetContactSettingsMessage = builderResult
        return returnMe
      }
      public func mergeFrom(other:Pogoprotos.Networking.Requests.Messages.SetContactSettingsMessage) throws -> Pogoprotos.Networking.Requests.Messages.SetContactSettingsMessage.Builder {
        if other == Pogoprotos.Networking.Requests.Messages.SetContactSettingsMessage() {
         return self
        }
        if (other.hasContactSettings) {
            try mergeContactSettings(other.contactSettings)
        }
        try mergeUnknownFields(other.unknownFields)
        return self
      }
      override public func mergeFromCodedInputStream(input:CodedInputStream) throws -> Pogoprotos.Networking.Requests.Messages.SetContactSettingsMessage.Builder {
           return try mergeFromCodedInputStream(input, extensionRegistry:ExtensionRegistry())
      }
      override public func mergeFromCodedInputStream(input:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.SetContactSettingsMessage.Builder {
        let unknownFieldsBuilder:UnknownFieldSet.Builder = try UnknownFieldSet.builderWithUnknownFields(self.unknownFields)
        while (true) {
          let protobufTag = try input.readTag()
          switch protobufTag {
          case 0: 
            self.unknownFields = try unknownFieldsBuilder.build()
            return self

          case 10:
            let subBuilder:Pogoprotos.Data.Player.ContactSettings.Builder = Pogoprotos.Data.Player.ContactSettings.Builder()
            if hasContactSettings {
              try subBuilder.mergeFrom(contactSettings)
            }
            try input.readMessage(subBuilder, extensionRegistry:extensionRegistry)
            contactSettings = subBuilder.buildPartial()

          default:
            if (!(try parseUnknownField(input,unknownFields:unknownFieldsBuilder, extensionRegistry:extensionRegistry, tag:protobufTag))) {
               unknownFields = try unknownFieldsBuilder.build()
               return self
            }
          }
        }
      }
      override class public func decodeToBuilder(jsonMap:Dictionary<String,AnyObject>) throws -> Pogoprotos.Networking.Requests.Messages.SetContactSettingsMessage.Builder {
        let resultDecodedBuilder = Pogoprotos.Networking.Requests.Messages.SetContactSettingsMessage.Builder()
        if let jsonValueContactSettings = jsonMap["contactSettings"] as? Dictionary<String,AnyObject> {
          resultDecodedBuilder.contactSettings = try Pogoprotos.Data.Player.ContactSettings.Builder.decodeToBuilder(jsonValueContactSettings).build()

        }
        return resultDecodedBuilder
      }
      override class public func fromJSONToBuilder(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.SetContactSettingsMessage.Builder {
        let jsonData = try NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions(rawValue: 0))
        guard let jsDataCast = jsonData as? Dictionary<String,AnyObject> else {
          throw ProtocolBuffersError.InvalidProtocolBuffer("Invalid JSON data")
        }
        return try Pogoprotos.Networking.Requests.Messages.SetContactSettingsMessage.Builder.decodeToBuilder(jsDataCast)
      }
    }

  }

  final public class SetFavoritePokemonMessage : GeneratedMessage, GeneratedMessageProtocol {
    // needs to be uint64, tested by Grover
    public private(set) var hasPokemonId:Bool = false
    public private(set) var pokemonId:UInt64 = UInt64(0)

    public private(set) var hasIsFavorite:Bool = false
    public private(set) var isFavorite:Bool = false

    required public init() {
         super.init()
    }
    override public func isInitialized() -> Bool {
     return true
    }
    override public func writeToCodedOutputStream(output:CodedOutputStream) throws {
      if hasPokemonId {
        try output.writeUInt64(1, value:pokemonId)
      }
      if hasIsFavorite {
        try output.writeBool(2, value:isFavorite)
      }
      try unknownFields.writeToCodedOutputStream(output)
    }
    override public func serializedSize() -> Int32 {
      var serialize_size:Int32 = memoizedSerializedSize
      if serialize_size != -1 {
       return serialize_size
      }

      serialize_size = 0
      if hasPokemonId {
        serialize_size += pokemonId.computeUInt64Size(1)
      }
      if hasIsFavorite {
        serialize_size += isFavorite.computeBoolSize(2)
      }
      serialize_size += unknownFields.serializedSize()
      memoizedSerializedSize = serialize_size
      return serialize_size
    }
    public class func parseArrayDelimitedFromInputStream(input:NSInputStream) throws -> Array<Pogoprotos.Networking.Requests.Messages.SetFavoritePokemonMessage> {
      var mergedArray = Array<Pogoprotos.Networking.Requests.Messages.SetFavoritePokemonMessage>()
      while let value = try parseFromDelimitedFromInputStream(input) {
        mergedArray += [value]
      }
      return mergedArray
    }
    public class func parseFromDelimitedFromInputStream(input:NSInputStream) throws -> Pogoprotos.Networking.Requests.Messages.SetFavoritePokemonMessage? {
      return try Pogoprotos.Networking.Requests.Messages.SetFavoritePokemonMessage.Builder().mergeDelimitedFromInputStream(input)?.build()
    }
    public class func parseFromData(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.SetFavoritePokemonMessage {
      return try Pogoprotos.Networking.Requests.Messages.SetFavoritePokemonMessage.Builder().mergeFromData(data, extensionRegistry:Pogoprotos.Networking.Requests.Messages.PogoprotosNetworkingRequestsMessagesRoot.sharedInstance.extensionRegistry).build()
    }
    public class func parseFromData(data:NSData, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.SetFavoritePokemonMessage {
      return try Pogoprotos.Networking.Requests.Messages.SetFavoritePokemonMessage.Builder().mergeFromData(data, extensionRegistry:extensionRegistry).build()
    }
    public class func parseFromInputStream(input:NSInputStream) throws -> Pogoprotos.Networking.Requests.Messages.SetFavoritePokemonMessage {
      return try Pogoprotos.Networking.Requests.Messages.SetFavoritePokemonMessage.Builder().mergeFromInputStream(input).build()
    }
    public class func parseFromInputStream(input:NSInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.SetFavoritePokemonMessage {
      return try Pogoprotos.Networking.Requests.Messages.SetFavoritePokemonMessage.Builder().mergeFromInputStream(input, extensionRegistry:extensionRegistry).build()
    }
    public class func parseFromCodedInputStream(input:CodedInputStream) throws -> Pogoprotos.Networking.Requests.Messages.SetFavoritePokemonMessage {
      return try Pogoprotos.Networking.Requests.Messages.SetFavoritePokemonMessage.Builder().mergeFromCodedInputStream(input).build()
    }
    public class func parseFromCodedInputStream(input:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.SetFavoritePokemonMessage {
      return try Pogoprotos.Networking.Requests.Messages.SetFavoritePokemonMessage.Builder().mergeFromCodedInputStream(input, extensionRegistry:extensionRegistry).build()
    }
    public class func getBuilder() -> Pogoprotos.Networking.Requests.Messages.SetFavoritePokemonMessage.Builder {
      return Pogoprotos.Networking.Requests.Messages.SetFavoritePokemonMessage.classBuilder() as! Pogoprotos.Networking.Requests.Messages.SetFavoritePokemonMessage.Builder
    }
    public func getBuilder() -> Pogoprotos.Networking.Requests.Messages.SetFavoritePokemonMessage.Builder {
      return classBuilder() as! Pogoprotos.Networking.Requests.Messages.SetFavoritePokemonMessage.Builder
    }
    override public class func classBuilder() -> MessageBuilder {
      return Pogoprotos.Networking.Requests.Messages.SetFavoritePokemonMessage.Builder()
    }
    override public func classBuilder() -> MessageBuilder {
      return Pogoprotos.Networking.Requests.Messages.SetFavoritePokemonMessage.Builder()
    }
    public func toBuilder() throws -> Pogoprotos.Networking.Requests.Messages.SetFavoritePokemonMessage.Builder {
      return try Pogoprotos.Networking.Requests.Messages.SetFavoritePokemonMessage.builderWithPrototype(self)
    }
    public class func builderWithPrototype(prototype:Pogoprotos.Networking.Requests.Messages.SetFavoritePokemonMessage) throws -> Pogoprotos.Networking.Requests.Messages.SetFavoritePokemonMessage.Builder {
      return try Pogoprotos.Networking.Requests.Messages.SetFavoritePokemonMessage.Builder().mergeFrom(prototype)
    }
    override public func encode() throws -> Dictionary<String,AnyObject> {
      guard isInitialized() else {
        throw ProtocolBuffersError.InvalidProtocolBuffer("Uninitialized Message")
      }

      var jsonMap:Dictionary<String,AnyObject> = Dictionary<String,AnyObject>()
      if hasPokemonId {
        jsonMap["pokemonId"] = "\(pokemonId)"
      }
      if hasIsFavorite {
        jsonMap["isFavorite"] = isFavorite
      }
      return jsonMap
    }
    override class public func decode(jsonMap:Dictionary<String,AnyObject>) throws -> Pogoprotos.Networking.Requests.Messages.SetFavoritePokemonMessage {
      return try Pogoprotos.Networking.Requests.Messages.SetFavoritePokemonMessage.Builder.decodeToBuilder(jsonMap).build()
    }
    override class public func fromJSON(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.SetFavoritePokemonMessage {
      return try Pogoprotos.Networking.Requests.Messages.SetFavoritePokemonMessage.Builder.fromJSONToBuilder(data).build()
    }
    override public func getDescription(indent:String) throws -> String {
      var output = ""
      if hasPokemonId {
        output += "\(indent) pokemonId: \(pokemonId) \n"
      }
      if hasIsFavorite {
        output += "\(indent) isFavorite: \(isFavorite) \n"
      }
      output += unknownFields.getDescription(indent)
      return output
    }
    override public var hashValue:Int {
        get {
            var hashCode:Int = 7
            if hasPokemonId {
               hashCode = (hashCode &* 31) &+ pokemonId.hashValue
            }
            if hasIsFavorite {
               hashCode = (hashCode &* 31) &+ isFavorite.hashValue
            }
            hashCode = (hashCode &* 31) &+  unknownFields.hashValue
            return hashCode
        }
    }


    //Meta information declaration start

    override public class func className() -> String {
        return "Pogoprotos.Networking.Requests.Messages.SetFavoritePokemonMessage"
    }
    override public func className() -> String {
        return "Pogoprotos.Networking.Requests.Messages.SetFavoritePokemonMessage"
    }
    override public func classMetaType() -> GeneratedMessage.Type {
        return Pogoprotos.Networking.Requests.Messages.SetFavoritePokemonMessage.self
    }
    //Meta information declaration end

    final public class Builder : GeneratedMessageBuilder {
      private var builderResult:Pogoprotos.Networking.Requests.Messages.SetFavoritePokemonMessage = Pogoprotos.Networking.Requests.Messages.SetFavoritePokemonMessage()
      public func getMessage() -> Pogoprotos.Networking.Requests.Messages.SetFavoritePokemonMessage {
          return builderResult
      }

      required override public init () {
         super.init()
      }
      public var hasPokemonId:Bool {
           get {
                return builderResult.hasPokemonId
           }
      }
      public var pokemonId:UInt64 {
           get {
                return builderResult.pokemonId
           }
           set (value) {
               builderResult.hasPokemonId = true
               builderResult.pokemonId = value
           }
      }
      public func setPokemonId(value:UInt64) -> Pogoprotos.Networking.Requests.Messages.SetFavoritePokemonMessage.Builder {
        self.pokemonId = value
        return self
      }
      public func clearPokemonId() -> Pogoprotos.Networking.Requests.Messages.SetFavoritePokemonMessage.Builder{
           builderResult.hasPokemonId = false
           builderResult.pokemonId = UInt64(0)
           return self
      }
      public var hasIsFavorite:Bool {
           get {
                return builderResult.hasIsFavorite
           }
      }
      public var isFavorite:Bool {
           get {
                return builderResult.isFavorite
           }
           set (value) {
               builderResult.hasIsFavorite = true
               builderResult.isFavorite = value
           }
      }
      public func setIsFavorite(value:Bool) -> Pogoprotos.Networking.Requests.Messages.SetFavoritePokemonMessage.Builder {
        self.isFavorite = value
        return self
      }
      public func clearIsFavorite() -> Pogoprotos.Networking.Requests.Messages.SetFavoritePokemonMessage.Builder{
           builderResult.hasIsFavorite = false
           builderResult.isFavorite = false
           return self
      }
      override public var internalGetResult:GeneratedMessage {
           get {
              return builderResult
           }
      }
      override public func clear() -> Pogoprotos.Networking.Requests.Messages.SetFavoritePokemonMessage.Builder {
        builderResult = Pogoprotos.Networking.Requests.Messages.SetFavoritePokemonMessage()
        return self
      }
      override public func clone() throws -> Pogoprotos.Networking.Requests.Messages.SetFavoritePokemonMessage.Builder {
        return try Pogoprotos.Networking.Requests.Messages.SetFavoritePokemonMessage.builderWithPrototype(builderResult)
      }
      override public func build() throws -> Pogoprotos.Networking.Requests.Messages.SetFavoritePokemonMessage {
           try checkInitialized()
           return buildPartial()
      }
      public func buildPartial() -> Pogoprotos.Networking.Requests.Messages.SetFavoritePokemonMessage {
        let returnMe:Pogoprotos.Networking.Requests.Messages.SetFavoritePokemonMessage = builderResult
        return returnMe
      }
      public func mergeFrom(other:Pogoprotos.Networking.Requests.Messages.SetFavoritePokemonMessage) throws -> Pogoprotos.Networking.Requests.Messages.SetFavoritePokemonMessage.Builder {
        if other == Pogoprotos.Networking.Requests.Messages.SetFavoritePokemonMessage() {
         return self
        }
        if other.hasPokemonId {
             pokemonId = other.pokemonId
        }
        if other.hasIsFavorite {
             isFavorite = other.isFavorite
        }
        try mergeUnknownFields(other.unknownFields)
        return self
      }
      override public func mergeFromCodedInputStream(input:CodedInputStream) throws -> Pogoprotos.Networking.Requests.Messages.SetFavoritePokemonMessage.Builder {
           return try mergeFromCodedInputStream(input, extensionRegistry:ExtensionRegistry())
      }
      override public func mergeFromCodedInputStream(input:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.SetFavoritePokemonMessage.Builder {
        let unknownFieldsBuilder:UnknownFieldSet.Builder = try UnknownFieldSet.builderWithUnknownFields(self.unknownFields)
        while (true) {
          let protobufTag = try input.readTag()
          switch protobufTag {
          case 0: 
            self.unknownFields = try unknownFieldsBuilder.build()
            return self

          case 8:
            pokemonId = try input.readUInt64()

          case 16:
            isFavorite = try input.readBool()

          default:
            if (!(try parseUnknownField(input,unknownFields:unknownFieldsBuilder, extensionRegistry:extensionRegistry, tag:protobufTag))) {
               unknownFields = try unknownFieldsBuilder.build()
               return self
            }
          }
        }
      }
      override class public func decodeToBuilder(jsonMap:Dictionary<String,AnyObject>) throws -> Pogoprotos.Networking.Requests.Messages.SetFavoritePokemonMessage.Builder {
        let resultDecodedBuilder = Pogoprotos.Networking.Requests.Messages.SetFavoritePokemonMessage.Builder()
        if let jsonValuePokemonId = jsonMap["pokemonId"] as? String {
          resultDecodedBuilder.pokemonId = UInt64(jsonValuePokemonId)!
        }
        if let jsonValueIsFavorite = jsonMap["isFavorite"] as? Bool {
          resultDecodedBuilder.isFavorite = jsonValueIsFavorite
        }
        return resultDecodedBuilder
      }
      override class public func fromJSONToBuilder(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.SetFavoritePokemonMessage.Builder {
        let jsonData = try NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions(rawValue: 0))
        guard let jsDataCast = jsonData as? Dictionary<String,AnyObject> else {
          throw ProtocolBuffersError.InvalidProtocolBuffer("Invalid JSON data")
        }
        return try Pogoprotos.Networking.Requests.Messages.SetFavoritePokemonMessage.Builder.decodeToBuilder(jsDataCast)
      }
    }

  }

  final public class SetPlayerTeamMessage : GeneratedMessage, GeneratedMessageProtocol {
    public private(set) var team:Pogoprotos.Enums.TeamColor = Pogoprotos.Enums.TeamColor.Neutral
    public private(set) var hasTeam:Bool = false
    required public init() {
         super.init()
    }
    override public func isInitialized() -> Bool {
     return true
    }
    override public func writeToCodedOutputStream(output:CodedOutputStream) throws {
      if hasTeam {
        try output.writeEnum(1, value:team.rawValue)
      }
      try unknownFields.writeToCodedOutputStream(output)
    }
    override public func serializedSize() -> Int32 {
      var serialize_size:Int32 = memoizedSerializedSize
      if serialize_size != -1 {
       return serialize_size
      }

      serialize_size = 0
      if (hasTeam) {
        serialize_size += team.rawValue.computeEnumSize(1)
      }
      serialize_size += unknownFields.serializedSize()
      memoizedSerializedSize = serialize_size
      return serialize_size
    }
    public class func parseArrayDelimitedFromInputStream(input:NSInputStream) throws -> Array<Pogoprotos.Networking.Requests.Messages.SetPlayerTeamMessage> {
      var mergedArray = Array<Pogoprotos.Networking.Requests.Messages.SetPlayerTeamMessage>()
      while let value = try parseFromDelimitedFromInputStream(input) {
        mergedArray += [value]
      }
      return mergedArray
    }
    public class func parseFromDelimitedFromInputStream(input:NSInputStream) throws -> Pogoprotos.Networking.Requests.Messages.SetPlayerTeamMessage? {
      return try Pogoprotos.Networking.Requests.Messages.SetPlayerTeamMessage.Builder().mergeDelimitedFromInputStream(input)?.build()
    }
    public class func parseFromData(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.SetPlayerTeamMessage {
      return try Pogoprotos.Networking.Requests.Messages.SetPlayerTeamMessage.Builder().mergeFromData(data, extensionRegistry:Pogoprotos.Networking.Requests.Messages.PogoprotosNetworkingRequestsMessagesRoot.sharedInstance.extensionRegistry).build()
    }
    public class func parseFromData(data:NSData, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.SetPlayerTeamMessage {
      return try Pogoprotos.Networking.Requests.Messages.SetPlayerTeamMessage.Builder().mergeFromData(data, extensionRegistry:extensionRegistry).build()
    }
    public class func parseFromInputStream(input:NSInputStream) throws -> Pogoprotos.Networking.Requests.Messages.SetPlayerTeamMessage {
      return try Pogoprotos.Networking.Requests.Messages.SetPlayerTeamMessage.Builder().mergeFromInputStream(input).build()
    }
    public class func parseFromInputStream(input:NSInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.SetPlayerTeamMessage {
      return try Pogoprotos.Networking.Requests.Messages.SetPlayerTeamMessage.Builder().mergeFromInputStream(input, extensionRegistry:extensionRegistry).build()
    }
    public class func parseFromCodedInputStream(input:CodedInputStream) throws -> Pogoprotos.Networking.Requests.Messages.SetPlayerTeamMessage {
      return try Pogoprotos.Networking.Requests.Messages.SetPlayerTeamMessage.Builder().mergeFromCodedInputStream(input).build()
    }
    public class func parseFromCodedInputStream(input:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.SetPlayerTeamMessage {
      return try Pogoprotos.Networking.Requests.Messages.SetPlayerTeamMessage.Builder().mergeFromCodedInputStream(input, extensionRegistry:extensionRegistry).build()
    }
    public class func getBuilder() -> Pogoprotos.Networking.Requests.Messages.SetPlayerTeamMessage.Builder {
      return Pogoprotos.Networking.Requests.Messages.SetPlayerTeamMessage.classBuilder() as! Pogoprotos.Networking.Requests.Messages.SetPlayerTeamMessage.Builder
    }
    public func getBuilder() -> Pogoprotos.Networking.Requests.Messages.SetPlayerTeamMessage.Builder {
      return classBuilder() as! Pogoprotos.Networking.Requests.Messages.SetPlayerTeamMessage.Builder
    }
    override public class func classBuilder() -> MessageBuilder {
      return Pogoprotos.Networking.Requests.Messages.SetPlayerTeamMessage.Builder()
    }
    override public func classBuilder() -> MessageBuilder {
      return Pogoprotos.Networking.Requests.Messages.SetPlayerTeamMessage.Builder()
    }
    public func toBuilder() throws -> Pogoprotos.Networking.Requests.Messages.SetPlayerTeamMessage.Builder {
      return try Pogoprotos.Networking.Requests.Messages.SetPlayerTeamMessage.builderWithPrototype(self)
    }
    public class func builderWithPrototype(prototype:Pogoprotos.Networking.Requests.Messages.SetPlayerTeamMessage) throws -> Pogoprotos.Networking.Requests.Messages.SetPlayerTeamMessage.Builder {
      return try Pogoprotos.Networking.Requests.Messages.SetPlayerTeamMessage.Builder().mergeFrom(prototype)
    }
    override public func encode() throws -> Dictionary<String,AnyObject> {
      guard isInitialized() else {
        throw ProtocolBuffersError.InvalidProtocolBuffer("Uninitialized Message")
      }

      var jsonMap:Dictionary<String,AnyObject> = Dictionary<String,AnyObject>()
      if hasTeam {
        jsonMap["team"] = team.toString()
      }
      return jsonMap
    }
    override class public func decode(jsonMap:Dictionary<String,AnyObject>) throws -> Pogoprotos.Networking.Requests.Messages.SetPlayerTeamMessage {
      return try Pogoprotos.Networking.Requests.Messages.SetPlayerTeamMessage.Builder.decodeToBuilder(jsonMap).build()
    }
    override class public func fromJSON(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.SetPlayerTeamMessage {
      return try Pogoprotos.Networking.Requests.Messages.SetPlayerTeamMessage.Builder.fromJSONToBuilder(data).build()
    }
    override public func getDescription(indent:String) throws -> String {
      var output = ""
      if (hasTeam) {
        output += "\(indent) team: \(team.description)\n"
      }
      output += unknownFields.getDescription(indent)
      return output
    }
    override public var hashValue:Int {
        get {
            var hashCode:Int = 7
            if hasTeam {
               hashCode = (hashCode &* 31) &+ Int(team.rawValue)
            }
            hashCode = (hashCode &* 31) &+  unknownFields.hashValue
            return hashCode
        }
    }


    //Meta information declaration start

    override public class func className() -> String {
        return "Pogoprotos.Networking.Requests.Messages.SetPlayerTeamMessage"
    }
    override public func className() -> String {
        return "Pogoprotos.Networking.Requests.Messages.SetPlayerTeamMessage"
    }
    override public func classMetaType() -> GeneratedMessage.Type {
        return Pogoprotos.Networking.Requests.Messages.SetPlayerTeamMessage.self
    }
    //Meta information declaration end

    final public class Builder : GeneratedMessageBuilder {
      private var builderResult:Pogoprotos.Networking.Requests.Messages.SetPlayerTeamMessage = Pogoprotos.Networking.Requests.Messages.SetPlayerTeamMessage()
      public func getMessage() -> Pogoprotos.Networking.Requests.Messages.SetPlayerTeamMessage {
          return builderResult
      }

      required override public init () {
         super.init()
      }
        public var hasTeam:Bool{
            get {
                return builderResult.hasTeam
            }
        }
        public var team:Pogoprotos.Enums.TeamColor {
            get {
                return builderResult.team
            }
            set (value) {
                builderResult.hasTeam = true
                builderResult.team = value
            }
        }
        public func setTeam(value:Pogoprotos.Enums.TeamColor) -> Pogoprotos.Networking.Requests.Messages.SetPlayerTeamMessage.Builder {
          self.team = value
          return self
        }
        public func clearTeam() -> Pogoprotos.Networking.Requests.Messages.SetPlayerTeamMessage.Builder {
           builderResult.hasTeam = false
           builderResult.team = .Neutral
           return self
        }
      override public var internalGetResult:GeneratedMessage {
           get {
              return builderResult
           }
      }
      override public func clear() -> Pogoprotos.Networking.Requests.Messages.SetPlayerTeamMessage.Builder {
        builderResult = Pogoprotos.Networking.Requests.Messages.SetPlayerTeamMessage()
        return self
      }
      override public func clone() throws -> Pogoprotos.Networking.Requests.Messages.SetPlayerTeamMessage.Builder {
        return try Pogoprotos.Networking.Requests.Messages.SetPlayerTeamMessage.builderWithPrototype(builderResult)
      }
      override public func build() throws -> Pogoprotos.Networking.Requests.Messages.SetPlayerTeamMessage {
           try checkInitialized()
           return buildPartial()
      }
      public func buildPartial() -> Pogoprotos.Networking.Requests.Messages.SetPlayerTeamMessage {
        let returnMe:Pogoprotos.Networking.Requests.Messages.SetPlayerTeamMessage = builderResult
        return returnMe
      }
      public func mergeFrom(other:Pogoprotos.Networking.Requests.Messages.SetPlayerTeamMessage) throws -> Pogoprotos.Networking.Requests.Messages.SetPlayerTeamMessage.Builder {
        if other == Pogoprotos.Networking.Requests.Messages.SetPlayerTeamMessage() {
         return self
        }
        if other.hasTeam {
             team = other.team
        }
        try mergeUnknownFields(other.unknownFields)
        return self
      }
      override public func mergeFromCodedInputStream(input:CodedInputStream) throws -> Pogoprotos.Networking.Requests.Messages.SetPlayerTeamMessage.Builder {
           return try mergeFromCodedInputStream(input, extensionRegistry:ExtensionRegistry())
      }
      override public func mergeFromCodedInputStream(input:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.SetPlayerTeamMessage.Builder {
        let unknownFieldsBuilder:UnknownFieldSet.Builder = try UnknownFieldSet.builderWithUnknownFields(self.unknownFields)
        while (true) {
          let protobufTag = try input.readTag()
          switch protobufTag {
          case 0: 
            self.unknownFields = try unknownFieldsBuilder.build()
            return self

          case 8:
            let valueIntteam = try input.readEnum()
            if let enumsteam = Pogoprotos.Enums.TeamColor(rawValue:valueIntteam){
                 team = enumsteam
            } else {
                 try unknownFieldsBuilder.mergeVarintField(1, value:Int64(valueIntteam))
            }

          default:
            if (!(try parseUnknownField(input,unknownFields:unknownFieldsBuilder, extensionRegistry:extensionRegistry, tag:protobufTag))) {
               unknownFields = try unknownFieldsBuilder.build()
               return self
            }
          }
        }
      }
      override class public func decodeToBuilder(jsonMap:Dictionary<String,AnyObject>) throws -> Pogoprotos.Networking.Requests.Messages.SetPlayerTeamMessage.Builder {
        let resultDecodedBuilder = Pogoprotos.Networking.Requests.Messages.SetPlayerTeamMessage.Builder()
        if let jsonValueTeam = jsonMap["team"] as? String {
          resultDecodedBuilder.team = try Pogoprotos.Enums.TeamColor.fromString(jsonValueTeam)
        }
        return resultDecodedBuilder
      }
      override class public func fromJSONToBuilder(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.SetPlayerTeamMessage.Builder {
        let jsonData = try NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions(rawValue: 0))
        guard let jsDataCast = jsonData as? Dictionary<String,AnyObject> else {
          throw ProtocolBuffersError.InvalidProtocolBuffer("Invalid JSON data")
        }
        return try Pogoprotos.Networking.Requests.Messages.SetPlayerTeamMessage.Builder.decodeToBuilder(jsDataCast)
      }
    }

  }

  // No message needed.
  final public class SfidaActionLogMessage : GeneratedMessage, GeneratedMessageProtocol {
    required public init() {
         super.init()
    }
    override public func isInitialized() -> Bool {
     return true
    }
    override public func writeToCodedOutputStream(output:CodedOutputStream) throws {
      try unknownFields.writeToCodedOutputStream(output)
    }
    override public func serializedSize() -> Int32 {
      var serialize_size:Int32 = memoizedSerializedSize
      if serialize_size != -1 {
       return serialize_size
      }

      serialize_size = 0
      serialize_size += unknownFields.serializedSize()
      memoizedSerializedSize = serialize_size
      return serialize_size
    }
    public class func parseArrayDelimitedFromInputStream(input:NSInputStream) throws -> Array<Pogoprotos.Networking.Requests.Messages.SfidaActionLogMessage> {
      var mergedArray = Array<Pogoprotos.Networking.Requests.Messages.SfidaActionLogMessage>()
      while let value = try parseFromDelimitedFromInputStream(input) {
        mergedArray += [value]
      }
      return mergedArray
    }
    public class func parseFromDelimitedFromInputStream(input:NSInputStream) throws -> Pogoprotos.Networking.Requests.Messages.SfidaActionLogMessage? {
      return try Pogoprotos.Networking.Requests.Messages.SfidaActionLogMessage.Builder().mergeDelimitedFromInputStream(input)?.build()
    }
    public class func parseFromData(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.SfidaActionLogMessage {
      return try Pogoprotos.Networking.Requests.Messages.SfidaActionLogMessage.Builder().mergeFromData(data, extensionRegistry:Pogoprotos.Networking.Requests.Messages.PogoprotosNetworkingRequestsMessagesRoot.sharedInstance.extensionRegistry).build()
    }
    public class func parseFromData(data:NSData, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.SfidaActionLogMessage {
      return try Pogoprotos.Networking.Requests.Messages.SfidaActionLogMessage.Builder().mergeFromData(data, extensionRegistry:extensionRegistry).build()
    }
    public class func parseFromInputStream(input:NSInputStream) throws -> Pogoprotos.Networking.Requests.Messages.SfidaActionLogMessage {
      return try Pogoprotos.Networking.Requests.Messages.SfidaActionLogMessage.Builder().mergeFromInputStream(input).build()
    }
    public class func parseFromInputStream(input:NSInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.SfidaActionLogMessage {
      return try Pogoprotos.Networking.Requests.Messages.SfidaActionLogMessage.Builder().mergeFromInputStream(input, extensionRegistry:extensionRegistry).build()
    }
    public class func parseFromCodedInputStream(input:CodedInputStream) throws -> Pogoprotos.Networking.Requests.Messages.SfidaActionLogMessage {
      return try Pogoprotos.Networking.Requests.Messages.SfidaActionLogMessage.Builder().mergeFromCodedInputStream(input).build()
    }
    public class func parseFromCodedInputStream(input:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.SfidaActionLogMessage {
      return try Pogoprotos.Networking.Requests.Messages.SfidaActionLogMessage.Builder().mergeFromCodedInputStream(input, extensionRegistry:extensionRegistry).build()
    }
    public class func getBuilder() -> Pogoprotos.Networking.Requests.Messages.SfidaActionLogMessage.Builder {
      return Pogoprotos.Networking.Requests.Messages.SfidaActionLogMessage.classBuilder() as! Pogoprotos.Networking.Requests.Messages.SfidaActionLogMessage.Builder
    }
    public func getBuilder() -> Pogoprotos.Networking.Requests.Messages.SfidaActionLogMessage.Builder {
      return classBuilder() as! Pogoprotos.Networking.Requests.Messages.SfidaActionLogMessage.Builder
    }
    override public class func classBuilder() -> MessageBuilder {
      return Pogoprotos.Networking.Requests.Messages.SfidaActionLogMessage.Builder()
    }
    override public func classBuilder() -> MessageBuilder {
      return Pogoprotos.Networking.Requests.Messages.SfidaActionLogMessage.Builder()
    }
    public func toBuilder() throws -> Pogoprotos.Networking.Requests.Messages.SfidaActionLogMessage.Builder {
      return try Pogoprotos.Networking.Requests.Messages.SfidaActionLogMessage.builderWithPrototype(self)
    }
    public class func builderWithPrototype(prototype:Pogoprotos.Networking.Requests.Messages.SfidaActionLogMessage) throws -> Pogoprotos.Networking.Requests.Messages.SfidaActionLogMessage.Builder {
      return try Pogoprotos.Networking.Requests.Messages.SfidaActionLogMessage.Builder().mergeFrom(prototype)
    }
    override public func encode() throws -> Dictionary<String,AnyObject> {
      guard isInitialized() else {
        throw ProtocolBuffersError.InvalidProtocolBuffer("Uninitialized Message")
      }

      let jsonMap:Dictionary<String,AnyObject> = Dictionary<String,AnyObject>()
      return jsonMap
    }
    override class public func decode(jsonMap:Dictionary<String,AnyObject>) throws -> Pogoprotos.Networking.Requests.Messages.SfidaActionLogMessage {
      return try Pogoprotos.Networking.Requests.Messages.SfidaActionLogMessage.Builder.decodeToBuilder(jsonMap).build()
    }
    override class public func fromJSON(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.SfidaActionLogMessage {
      return try Pogoprotos.Networking.Requests.Messages.SfidaActionLogMessage.Builder.fromJSONToBuilder(data).build()
    }
    override public func getDescription(indent:String) throws -> String {
      var output = ""
      output += unknownFields.getDescription(indent)
      return output
    }
    override public var hashValue:Int {
        get {
            var hashCode:Int = 7
            hashCode = (hashCode &* 31) &+  unknownFields.hashValue
            return hashCode
        }
    }


    //Meta information declaration start

    override public class func className() -> String {
        return "Pogoprotos.Networking.Requests.Messages.SfidaActionLogMessage"
    }
    override public func className() -> String {
        return "Pogoprotos.Networking.Requests.Messages.SfidaActionLogMessage"
    }
    override public func classMetaType() -> GeneratedMessage.Type {
        return Pogoprotos.Networking.Requests.Messages.SfidaActionLogMessage.self
    }
    //Meta information declaration end

    final public class Builder : GeneratedMessageBuilder {
      private var builderResult:Pogoprotos.Networking.Requests.Messages.SfidaActionLogMessage = Pogoprotos.Networking.Requests.Messages.SfidaActionLogMessage()
      public func getMessage() -> Pogoprotos.Networking.Requests.Messages.SfidaActionLogMessage {
          return builderResult
      }

      required override public init () {
         super.init()
      }
      override public var internalGetResult:GeneratedMessage {
           get {
              return builderResult
           }
      }
      override public func clear() -> Pogoprotos.Networking.Requests.Messages.SfidaActionLogMessage.Builder {
        builderResult = Pogoprotos.Networking.Requests.Messages.SfidaActionLogMessage()
        return self
      }
      override public func clone() throws -> Pogoprotos.Networking.Requests.Messages.SfidaActionLogMessage.Builder {
        return try Pogoprotos.Networking.Requests.Messages.SfidaActionLogMessage.builderWithPrototype(builderResult)
      }
      override public func build() throws -> Pogoprotos.Networking.Requests.Messages.SfidaActionLogMessage {
           try checkInitialized()
           return buildPartial()
      }
      public func buildPartial() -> Pogoprotos.Networking.Requests.Messages.SfidaActionLogMessage {
        let returnMe:Pogoprotos.Networking.Requests.Messages.SfidaActionLogMessage = builderResult
        return returnMe
      }
      public func mergeFrom(other:Pogoprotos.Networking.Requests.Messages.SfidaActionLogMessage) throws -> Pogoprotos.Networking.Requests.Messages.SfidaActionLogMessage.Builder {
        if other == Pogoprotos.Networking.Requests.Messages.SfidaActionLogMessage() {
         return self
        }
        try mergeUnknownFields(other.unknownFields)
        return self
      }
      override public func mergeFromCodedInputStream(input:CodedInputStream) throws -> Pogoprotos.Networking.Requests.Messages.SfidaActionLogMessage.Builder {
           return try mergeFromCodedInputStream(input, extensionRegistry:ExtensionRegistry())
      }
      override public func mergeFromCodedInputStream(input:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.SfidaActionLogMessage.Builder {
        let unknownFieldsBuilder:UnknownFieldSet.Builder = try UnknownFieldSet.builderWithUnknownFields(self.unknownFields)
        while (true) {
          let protobufTag = try input.readTag()
          switch protobufTag {
          case 0: 
            self.unknownFields = try unknownFieldsBuilder.build()
            return self

          default:
            if (!(try parseUnknownField(input,unknownFields:unknownFieldsBuilder, extensionRegistry:extensionRegistry, tag:protobufTag))) {
               unknownFields = try unknownFieldsBuilder.build()
               return self
            }
          }
        }
      }
      override class public func decodeToBuilder(jsonMap:Dictionary<String,AnyObject>) throws -> Pogoprotos.Networking.Requests.Messages.SfidaActionLogMessage.Builder {
        let resultDecodedBuilder = Pogoprotos.Networking.Requests.Messages.SfidaActionLogMessage.Builder()
        return resultDecodedBuilder
      }
      override class public func fromJSONToBuilder(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.SfidaActionLogMessage.Builder {
        let jsonData = try NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions(rawValue: 0))
        guard let jsDataCast = jsonData as? Dictionary<String,AnyObject> else {
          throw ProtocolBuffersError.InvalidProtocolBuffer("Invalid JSON data")
        }
        return try Pogoprotos.Networking.Requests.Messages.SfidaActionLogMessage.Builder.decodeToBuilder(jsDataCast)
      }
    }

  }

  final public class StartGymBattleMessage : GeneratedMessage, GeneratedMessageProtocol {
    public private(set) var hasGymId:Bool = false
    public private(set) var gymId:String = ""

    public private(set) var attackingPokemonIds:Array<UInt64> = Array<UInt64>()
    private var attackingPokemonIdsMemoizedSerializedSize:Int32 = -1
    // needs to be fixed64, tested by Grover
    public private(set) var hasDefendingPokemonId:Bool = false
    public private(set) var defendingPokemonId:UInt64 = UInt64(0)

    public private(set) var hasPlayerLatitude:Bool = false
    public private(set) var playerLatitude:Double = Double(0)

    public private(set) var hasPlayerLongitude:Bool = false
    public private(set) var playerLongitude:Double = Double(0)

    required public init() {
         super.init()
    }
    override public func isInitialized() -> Bool {
     return true
    }
    override public func writeToCodedOutputStream(output:CodedOutputStream) throws {
      if hasGymId {
        try output.writeString(1, value:gymId)
      }
      if !attackingPokemonIds.isEmpty {
        try output.writeRawVarint32(18)
        try output.writeRawVarint32(attackingPokemonIdsMemoizedSerializedSize)
        for oneValueattackingPokemonIds in attackingPokemonIds {
          try output.writeFixed64NoTag(oneValueattackingPokemonIds)
        }
      }
      if hasDefendingPokemonId {
        try output.writeFixed64(3, value:defendingPokemonId)
      }
      if hasPlayerLatitude {
        try output.writeDouble(4, value:playerLatitude)
      }
      if hasPlayerLongitude {
        try output.writeDouble(5, value:playerLongitude)
      }
      try unknownFields.writeToCodedOutputStream(output)
    }
    override public func serializedSize() -> Int32 {
      var serialize_size:Int32 = memoizedSerializedSize
      if serialize_size != -1 {
       return serialize_size
      }

      serialize_size = 0
      if hasGymId {
        serialize_size += gymId.computeStringSize(1)
      }
      var dataSizeAttackingPokemonIds:Int32 = 0
      dataSizeAttackingPokemonIds = 8 * Int32(attackingPokemonIds.count)
      serialize_size += dataSizeAttackingPokemonIds
      if !attackingPokemonIds.isEmpty {
        serialize_size += 1
        serialize_size += dataSizeAttackingPokemonIds.computeInt32SizeNoTag()
      }
      attackingPokemonIdsMemoizedSerializedSize = dataSizeAttackingPokemonIds
      if hasDefendingPokemonId {
        serialize_size += defendingPokemonId.computeFixed64Size(3)
      }
      if hasPlayerLatitude {
        serialize_size += playerLatitude.computeDoubleSize(4)
      }
      if hasPlayerLongitude {
        serialize_size += playerLongitude.computeDoubleSize(5)
      }
      serialize_size += unknownFields.serializedSize()
      memoizedSerializedSize = serialize_size
      return serialize_size
    }
    public class func parseArrayDelimitedFromInputStream(input:NSInputStream) throws -> Array<Pogoprotos.Networking.Requests.Messages.StartGymBattleMessage> {
      var mergedArray = Array<Pogoprotos.Networking.Requests.Messages.StartGymBattleMessage>()
      while let value = try parseFromDelimitedFromInputStream(input) {
        mergedArray += [value]
      }
      return mergedArray
    }
    public class func parseFromDelimitedFromInputStream(input:NSInputStream) throws -> Pogoprotos.Networking.Requests.Messages.StartGymBattleMessage? {
      return try Pogoprotos.Networking.Requests.Messages.StartGymBattleMessage.Builder().mergeDelimitedFromInputStream(input)?.build()
    }
    public class func parseFromData(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.StartGymBattleMessage {
      return try Pogoprotos.Networking.Requests.Messages.StartGymBattleMessage.Builder().mergeFromData(data, extensionRegistry:Pogoprotos.Networking.Requests.Messages.PogoprotosNetworkingRequestsMessagesRoot.sharedInstance.extensionRegistry).build()
    }
    public class func parseFromData(data:NSData, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.StartGymBattleMessage {
      return try Pogoprotos.Networking.Requests.Messages.StartGymBattleMessage.Builder().mergeFromData(data, extensionRegistry:extensionRegistry).build()
    }
    public class func parseFromInputStream(input:NSInputStream) throws -> Pogoprotos.Networking.Requests.Messages.StartGymBattleMessage {
      return try Pogoprotos.Networking.Requests.Messages.StartGymBattleMessage.Builder().mergeFromInputStream(input).build()
    }
    public class func parseFromInputStream(input:NSInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.StartGymBattleMessage {
      return try Pogoprotos.Networking.Requests.Messages.StartGymBattleMessage.Builder().mergeFromInputStream(input, extensionRegistry:extensionRegistry).build()
    }
    public class func parseFromCodedInputStream(input:CodedInputStream) throws -> Pogoprotos.Networking.Requests.Messages.StartGymBattleMessage {
      return try Pogoprotos.Networking.Requests.Messages.StartGymBattleMessage.Builder().mergeFromCodedInputStream(input).build()
    }
    public class func parseFromCodedInputStream(input:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.StartGymBattleMessage {
      return try Pogoprotos.Networking.Requests.Messages.StartGymBattleMessage.Builder().mergeFromCodedInputStream(input, extensionRegistry:extensionRegistry).build()
    }
    public class func getBuilder() -> Pogoprotos.Networking.Requests.Messages.StartGymBattleMessage.Builder {
      return Pogoprotos.Networking.Requests.Messages.StartGymBattleMessage.classBuilder() as! Pogoprotos.Networking.Requests.Messages.StartGymBattleMessage.Builder
    }
    public func getBuilder() -> Pogoprotos.Networking.Requests.Messages.StartGymBattleMessage.Builder {
      return classBuilder() as! Pogoprotos.Networking.Requests.Messages.StartGymBattleMessage.Builder
    }
    override public class func classBuilder() -> MessageBuilder {
      return Pogoprotos.Networking.Requests.Messages.StartGymBattleMessage.Builder()
    }
    override public func classBuilder() -> MessageBuilder {
      return Pogoprotos.Networking.Requests.Messages.StartGymBattleMessage.Builder()
    }
    public func toBuilder() throws -> Pogoprotos.Networking.Requests.Messages.StartGymBattleMessage.Builder {
      return try Pogoprotos.Networking.Requests.Messages.StartGymBattleMessage.builderWithPrototype(self)
    }
    public class func builderWithPrototype(prototype:Pogoprotos.Networking.Requests.Messages.StartGymBattleMessage) throws -> Pogoprotos.Networking.Requests.Messages.StartGymBattleMessage.Builder {
      return try Pogoprotos.Networking.Requests.Messages.StartGymBattleMessage.Builder().mergeFrom(prototype)
    }
    override public func encode() throws -> Dictionary<String,AnyObject> {
      guard isInitialized() else {
        throw ProtocolBuffersError.InvalidProtocolBuffer("Uninitialized Message")
      }

      var jsonMap:Dictionary<String,AnyObject> = Dictionary<String,AnyObject>()
      if hasGymId {
        jsonMap["gymId"] = gymId
      }
      if !attackingPokemonIds.isEmpty {
        var jsonArrayAttackingPokemonIds:Array<String> = []
          for oneValueAttackingPokemonIds in attackingPokemonIds {
            jsonArrayAttackingPokemonIds += ["\(oneValueAttackingPokemonIds)"]
          }
        jsonMap["attackingPokemonIds"] = jsonArrayAttackingPokemonIds
      }
      if hasDefendingPokemonId {
        jsonMap["defendingPokemonId"] = "\(defendingPokemonId)"
      }
      if hasPlayerLatitude {
        jsonMap["playerLatitude"] = NSNumber(double:playerLatitude)
      }
      if hasPlayerLongitude {
        jsonMap["playerLongitude"] = NSNumber(double:playerLongitude)
      }
      return jsonMap
    }
    override class public func decode(jsonMap:Dictionary<String,AnyObject>) throws -> Pogoprotos.Networking.Requests.Messages.StartGymBattleMessage {
      return try Pogoprotos.Networking.Requests.Messages.StartGymBattleMessage.Builder.decodeToBuilder(jsonMap).build()
    }
    override class public func fromJSON(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.StartGymBattleMessage {
      return try Pogoprotos.Networking.Requests.Messages.StartGymBattleMessage.Builder.fromJSONToBuilder(data).build()
    }
    override public func getDescription(indent:String) throws -> String {
      var output = ""
      if hasGymId {
        output += "\(indent) gymId: \(gymId) \n"
      }
      var attackingPokemonIdsElementIndex:Int = 0
      for oneValueAttackingPokemonIds in attackingPokemonIds  {
          output += "\(indent) attackingPokemonIds[\(attackingPokemonIdsElementIndex)]: \(oneValueAttackingPokemonIds)\n"
          attackingPokemonIdsElementIndex += 1
      }
      if hasDefendingPokemonId {
        output += "\(indent) defendingPokemonId: \(defendingPokemonId) \n"
      }
      if hasPlayerLatitude {
        output += "\(indent) playerLatitude: \(playerLatitude) \n"
      }
      if hasPlayerLongitude {
        output += "\(indent) playerLongitude: \(playerLongitude) \n"
      }
      output += unknownFields.getDescription(indent)
      return output
    }
    override public var hashValue:Int {
        get {
            var hashCode:Int = 7
            if hasGymId {
               hashCode = (hashCode &* 31) &+ gymId.hashValue
            }
            for oneValueAttackingPokemonIds in attackingPokemonIds {
                hashCode = (hashCode &* 31) &+ oneValueAttackingPokemonIds.hashValue
            }
            if hasDefendingPokemonId {
               hashCode = (hashCode &* 31) &+ defendingPokemonId.hashValue
            }
            if hasPlayerLatitude {
               hashCode = (hashCode &* 31) &+ playerLatitude.hashValue
            }
            if hasPlayerLongitude {
               hashCode = (hashCode &* 31) &+ playerLongitude.hashValue
            }
            hashCode = (hashCode &* 31) &+  unknownFields.hashValue
            return hashCode
        }
    }


    //Meta information declaration start

    override public class func className() -> String {
        return "Pogoprotos.Networking.Requests.Messages.StartGymBattleMessage"
    }
    override public func className() -> String {
        return "Pogoprotos.Networking.Requests.Messages.StartGymBattleMessage"
    }
    override public func classMetaType() -> GeneratedMessage.Type {
        return Pogoprotos.Networking.Requests.Messages.StartGymBattleMessage.self
    }
    //Meta information declaration end

    final public class Builder : GeneratedMessageBuilder {
      private var builderResult:Pogoprotos.Networking.Requests.Messages.StartGymBattleMessage = Pogoprotos.Networking.Requests.Messages.StartGymBattleMessage()
      public func getMessage() -> Pogoprotos.Networking.Requests.Messages.StartGymBattleMessage {
          return builderResult
      }

      required override public init () {
         super.init()
      }
      public var hasGymId:Bool {
           get {
                return builderResult.hasGymId
           }
      }
      public var gymId:String {
           get {
                return builderResult.gymId
           }
           set (value) {
               builderResult.hasGymId = true
               builderResult.gymId = value
           }
      }
      public func setGymId(value:String) -> Pogoprotos.Networking.Requests.Messages.StartGymBattleMessage.Builder {
        self.gymId = value
        return self
      }
      public func clearGymId() -> Pogoprotos.Networking.Requests.Messages.StartGymBattleMessage.Builder{
           builderResult.hasGymId = false
           builderResult.gymId = ""
           return self
      }
      public var attackingPokemonIds:Array<UInt64> {
           get {
               return builderResult.attackingPokemonIds
           }
           set (array) {
               builderResult.attackingPokemonIds = array
           }
      }
      public func setAttackingPokemonIds(value:Array<UInt64>) -> Pogoprotos.Networking.Requests.Messages.StartGymBattleMessage.Builder {
        self.attackingPokemonIds = value
        return self
      }
      public func clearAttackingPokemonIds() -> Pogoprotos.Networking.Requests.Messages.StartGymBattleMessage.Builder {
         builderResult.attackingPokemonIds.removeAll(keepCapacity: false)
         return self
      }
      public var hasDefendingPokemonId:Bool {
           get {
                return builderResult.hasDefendingPokemonId
           }
      }
      public var defendingPokemonId:UInt64 {
           get {
                return builderResult.defendingPokemonId
           }
           set (value) {
               builderResult.hasDefendingPokemonId = true
               builderResult.defendingPokemonId = value
           }
      }
      public func setDefendingPokemonId(value:UInt64) -> Pogoprotos.Networking.Requests.Messages.StartGymBattleMessage.Builder {
        self.defendingPokemonId = value
        return self
      }
      public func clearDefendingPokemonId() -> Pogoprotos.Networking.Requests.Messages.StartGymBattleMessage.Builder{
           builderResult.hasDefendingPokemonId = false
           builderResult.defendingPokemonId = UInt64(0)
           return self
      }
      public var hasPlayerLatitude:Bool {
           get {
                return builderResult.hasPlayerLatitude
           }
      }
      public var playerLatitude:Double {
           get {
                return builderResult.playerLatitude
           }
           set (value) {
               builderResult.hasPlayerLatitude = true
               builderResult.playerLatitude = value
           }
      }
      public func setPlayerLatitude(value:Double) -> Pogoprotos.Networking.Requests.Messages.StartGymBattleMessage.Builder {
        self.playerLatitude = value
        return self
      }
      public func clearPlayerLatitude() -> Pogoprotos.Networking.Requests.Messages.StartGymBattleMessage.Builder{
           builderResult.hasPlayerLatitude = false
           builderResult.playerLatitude = Double(0)
           return self
      }
      public var hasPlayerLongitude:Bool {
           get {
                return builderResult.hasPlayerLongitude
           }
      }
      public var playerLongitude:Double {
           get {
                return builderResult.playerLongitude
           }
           set (value) {
               builderResult.hasPlayerLongitude = true
               builderResult.playerLongitude = value
           }
      }
      public func setPlayerLongitude(value:Double) -> Pogoprotos.Networking.Requests.Messages.StartGymBattleMessage.Builder {
        self.playerLongitude = value
        return self
      }
      public func clearPlayerLongitude() -> Pogoprotos.Networking.Requests.Messages.StartGymBattleMessage.Builder{
           builderResult.hasPlayerLongitude = false
           builderResult.playerLongitude = Double(0)
           return self
      }
      override public var internalGetResult:GeneratedMessage {
           get {
              return builderResult
           }
      }
      override public func clear() -> Pogoprotos.Networking.Requests.Messages.StartGymBattleMessage.Builder {
        builderResult = Pogoprotos.Networking.Requests.Messages.StartGymBattleMessage()
        return self
      }
      override public func clone() throws -> Pogoprotos.Networking.Requests.Messages.StartGymBattleMessage.Builder {
        return try Pogoprotos.Networking.Requests.Messages.StartGymBattleMessage.builderWithPrototype(builderResult)
      }
      override public func build() throws -> Pogoprotos.Networking.Requests.Messages.StartGymBattleMessage {
           try checkInitialized()
           return buildPartial()
      }
      public func buildPartial() -> Pogoprotos.Networking.Requests.Messages.StartGymBattleMessage {
        let returnMe:Pogoprotos.Networking.Requests.Messages.StartGymBattleMessage = builderResult
        return returnMe
      }
      public func mergeFrom(other:Pogoprotos.Networking.Requests.Messages.StartGymBattleMessage) throws -> Pogoprotos.Networking.Requests.Messages.StartGymBattleMessage.Builder {
        if other == Pogoprotos.Networking.Requests.Messages.StartGymBattleMessage() {
         return self
        }
        if other.hasGymId {
             gymId = other.gymId
        }
        if !other.attackingPokemonIds.isEmpty {
            builderResult.attackingPokemonIds += other.attackingPokemonIds
        }
        if other.hasDefendingPokemonId {
             defendingPokemonId = other.defendingPokemonId
        }
        if other.hasPlayerLatitude {
             playerLatitude = other.playerLatitude
        }
        if other.hasPlayerLongitude {
             playerLongitude = other.playerLongitude
        }
        try mergeUnknownFields(other.unknownFields)
        return self
      }
      override public func mergeFromCodedInputStream(input:CodedInputStream) throws -> Pogoprotos.Networking.Requests.Messages.StartGymBattleMessage.Builder {
           return try mergeFromCodedInputStream(input, extensionRegistry:ExtensionRegistry())
      }
      override public func mergeFromCodedInputStream(input:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.StartGymBattleMessage.Builder {
        let unknownFieldsBuilder:UnknownFieldSet.Builder = try UnknownFieldSet.builderWithUnknownFields(self.unknownFields)
        while (true) {
          let protobufTag = try input.readTag()
          switch protobufTag {
          case 0: 
            self.unknownFields = try unknownFieldsBuilder.build()
            return self

          case 10:
            gymId = try input.readString()

          case 18:
            let length:Int32 = try input.readRawVarint32()
            let limit:Int32 = try input.pushLimit(length)
            while (input.bytesUntilLimit() > 0) {
              builderResult.attackingPokemonIds += [try input.readFixed64()]
            }
            input.popLimit(limit)

          case 25:
            defendingPokemonId = try input.readFixed64()

          case 33:
            playerLatitude = try input.readDouble()

          case 41:
            playerLongitude = try input.readDouble()

          default:
            if (!(try parseUnknownField(input,unknownFields:unknownFieldsBuilder, extensionRegistry:extensionRegistry, tag:protobufTag))) {
               unknownFields = try unknownFieldsBuilder.build()
               return self
            }
          }
        }
      }
      override class public func decodeToBuilder(jsonMap:Dictionary<String,AnyObject>) throws -> Pogoprotos.Networking.Requests.Messages.StartGymBattleMessage.Builder {
        let resultDecodedBuilder = Pogoprotos.Networking.Requests.Messages.StartGymBattleMessage.Builder()
        if let jsonValueGymId = jsonMap["gymId"] as? String {
          resultDecodedBuilder.gymId = jsonValueGymId
        }
        if let jsonValueAttackingPokemonIds = jsonMap["attackingPokemonIds"] as? Array<String> {
          var jsonArrayAttackingPokemonIds:Array<UInt64> = []
          for oneValueAttackingPokemonIds in jsonValueAttackingPokemonIds {
            jsonArrayAttackingPokemonIds += [UInt64(oneValueAttackingPokemonIds)!]
          }
          resultDecodedBuilder.attackingPokemonIds = jsonArrayAttackingPokemonIds
        }
        if let jsonValueDefendingPokemonId = jsonMap["defendingPokemonId"] as? String {
          resultDecodedBuilder.defendingPokemonId = UInt64(jsonValueDefendingPokemonId)!
        }
        if let jsonValuePlayerLatitude = jsonMap["playerLatitude"] as? NSNumber {
          resultDecodedBuilder.playerLatitude = jsonValuePlayerLatitude.doubleValue
        }
        if let jsonValuePlayerLongitude = jsonMap["playerLongitude"] as? NSNumber {
          resultDecodedBuilder.playerLongitude = jsonValuePlayerLongitude.doubleValue
        }
        return resultDecodedBuilder
      }
      override class public func fromJSONToBuilder(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.StartGymBattleMessage.Builder {
        let jsonData = try NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions(rawValue: 0))
        guard let jsDataCast = jsonData as? Dictionary<String,AnyObject> else {
          throw ProtocolBuffersError.InvalidProtocolBuffer("Invalid JSON data")
        }
        return try Pogoprotos.Networking.Requests.Messages.StartGymBattleMessage.Builder.decodeToBuilder(jsDataCast)
      }
    }

  }

  final public class UpgradePokemonMessage : GeneratedMessage, GeneratedMessageProtocol {
    public private(set) var hasPokemonId:Bool = false
    public private(set) var pokemonId:UInt64 = UInt64(0)

    required public init() {
         super.init()
    }
    override public func isInitialized() -> Bool {
     return true
    }
    override public func writeToCodedOutputStream(output:CodedOutputStream) throws {
      if hasPokemonId {
        try output.writeFixed64(1, value:pokemonId)
      }
      try unknownFields.writeToCodedOutputStream(output)
    }
    override public func serializedSize() -> Int32 {
      var serialize_size:Int32 = memoizedSerializedSize
      if serialize_size != -1 {
       return serialize_size
      }

      serialize_size = 0
      if hasPokemonId {
        serialize_size += pokemonId.computeFixed64Size(1)
      }
      serialize_size += unknownFields.serializedSize()
      memoizedSerializedSize = serialize_size
      return serialize_size
    }
    public class func parseArrayDelimitedFromInputStream(input:NSInputStream) throws -> Array<Pogoprotos.Networking.Requests.Messages.UpgradePokemonMessage> {
      var mergedArray = Array<Pogoprotos.Networking.Requests.Messages.UpgradePokemonMessage>()
      while let value = try parseFromDelimitedFromInputStream(input) {
        mergedArray += [value]
      }
      return mergedArray
    }
    public class func parseFromDelimitedFromInputStream(input:NSInputStream) throws -> Pogoprotos.Networking.Requests.Messages.UpgradePokemonMessage? {
      return try Pogoprotos.Networking.Requests.Messages.UpgradePokemonMessage.Builder().mergeDelimitedFromInputStream(input)?.build()
    }
    public class func parseFromData(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.UpgradePokemonMessage {
      return try Pogoprotos.Networking.Requests.Messages.UpgradePokemonMessage.Builder().mergeFromData(data, extensionRegistry:Pogoprotos.Networking.Requests.Messages.PogoprotosNetworkingRequestsMessagesRoot.sharedInstance.extensionRegistry).build()
    }
    public class func parseFromData(data:NSData, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.UpgradePokemonMessage {
      return try Pogoprotos.Networking.Requests.Messages.UpgradePokemonMessage.Builder().mergeFromData(data, extensionRegistry:extensionRegistry).build()
    }
    public class func parseFromInputStream(input:NSInputStream) throws -> Pogoprotos.Networking.Requests.Messages.UpgradePokemonMessage {
      return try Pogoprotos.Networking.Requests.Messages.UpgradePokemonMessage.Builder().mergeFromInputStream(input).build()
    }
    public class func parseFromInputStream(input:NSInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.UpgradePokemonMessage {
      return try Pogoprotos.Networking.Requests.Messages.UpgradePokemonMessage.Builder().mergeFromInputStream(input, extensionRegistry:extensionRegistry).build()
    }
    public class func parseFromCodedInputStream(input:CodedInputStream) throws -> Pogoprotos.Networking.Requests.Messages.UpgradePokemonMessage {
      return try Pogoprotos.Networking.Requests.Messages.UpgradePokemonMessage.Builder().mergeFromCodedInputStream(input).build()
    }
    public class func parseFromCodedInputStream(input:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.UpgradePokemonMessage {
      return try Pogoprotos.Networking.Requests.Messages.UpgradePokemonMessage.Builder().mergeFromCodedInputStream(input, extensionRegistry:extensionRegistry).build()
    }
    public class func getBuilder() -> Pogoprotos.Networking.Requests.Messages.UpgradePokemonMessage.Builder {
      return Pogoprotos.Networking.Requests.Messages.UpgradePokemonMessage.classBuilder() as! Pogoprotos.Networking.Requests.Messages.UpgradePokemonMessage.Builder
    }
    public func getBuilder() -> Pogoprotos.Networking.Requests.Messages.UpgradePokemonMessage.Builder {
      return classBuilder() as! Pogoprotos.Networking.Requests.Messages.UpgradePokemonMessage.Builder
    }
    override public class func classBuilder() -> MessageBuilder {
      return Pogoprotos.Networking.Requests.Messages.UpgradePokemonMessage.Builder()
    }
    override public func classBuilder() -> MessageBuilder {
      return Pogoprotos.Networking.Requests.Messages.UpgradePokemonMessage.Builder()
    }
    public func toBuilder() throws -> Pogoprotos.Networking.Requests.Messages.UpgradePokemonMessage.Builder {
      return try Pogoprotos.Networking.Requests.Messages.UpgradePokemonMessage.builderWithPrototype(self)
    }
    public class func builderWithPrototype(prototype:Pogoprotos.Networking.Requests.Messages.UpgradePokemonMessage) throws -> Pogoprotos.Networking.Requests.Messages.UpgradePokemonMessage.Builder {
      return try Pogoprotos.Networking.Requests.Messages.UpgradePokemonMessage.Builder().mergeFrom(prototype)
    }
    override public func encode() throws -> Dictionary<String,AnyObject> {
      guard isInitialized() else {
        throw ProtocolBuffersError.InvalidProtocolBuffer("Uninitialized Message")
      }

      var jsonMap:Dictionary<String,AnyObject> = Dictionary<String,AnyObject>()
      if hasPokemonId {
        jsonMap["pokemonId"] = "\(pokemonId)"
      }
      return jsonMap
    }
    override class public func decode(jsonMap:Dictionary<String,AnyObject>) throws -> Pogoprotos.Networking.Requests.Messages.UpgradePokemonMessage {
      return try Pogoprotos.Networking.Requests.Messages.UpgradePokemonMessage.Builder.decodeToBuilder(jsonMap).build()
    }
    override class public func fromJSON(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.UpgradePokemonMessage {
      return try Pogoprotos.Networking.Requests.Messages.UpgradePokemonMessage.Builder.fromJSONToBuilder(data).build()
    }
    override public func getDescription(indent:String) throws -> String {
      var output = ""
      if hasPokemonId {
        output += "\(indent) pokemonId: \(pokemonId) \n"
      }
      output += unknownFields.getDescription(indent)
      return output
    }
    override public var hashValue:Int {
        get {
            var hashCode:Int = 7
            if hasPokemonId {
               hashCode = (hashCode &* 31) &+ pokemonId.hashValue
            }
            hashCode = (hashCode &* 31) &+  unknownFields.hashValue
            return hashCode
        }
    }


    //Meta information declaration start

    override public class func className() -> String {
        return "Pogoprotos.Networking.Requests.Messages.UpgradePokemonMessage"
    }
    override public func className() -> String {
        return "Pogoprotos.Networking.Requests.Messages.UpgradePokemonMessage"
    }
    override public func classMetaType() -> GeneratedMessage.Type {
        return Pogoprotos.Networking.Requests.Messages.UpgradePokemonMessage.self
    }
    //Meta information declaration end

    final public class Builder : GeneratedMessageBuilder {
      private var builderResult:Pogoprotos.Networking.Requests.Messages.UpgradePokemonMessage = Pogoprotos.Networking.Requests.Messages.UpgradePokemonMessage()
      public func getMessage() -> Pogoprotos.Networking.Requests.Messages.UpgradePokemonMessage {
          return builderResult
      }

      required override public init () {
         super.init()
      }
      public var hasPokemonId:Bool {
           get {
                return builderResult.hasPokemonId
           }
      }
      public var pokemonId:UInt64 {
           get {
                return builderResult.pokemonId
           }
           set (value) {
               builderResult.hasPokemonId = true
               builderResult.pokemonId = value
           }
      }
      public func setPokemonId(value:UInt64) -> Pogoprotos.Networking.Requests.Messages.UpgradePokemonMessage.Builder {
        self.pokemonId = value
        return self
      }
      public func clearPokemonId() -> Pogoprotos.Networking.Requests.Messages.UpgradePokemonMessage.Builder{
           builderResult.hasPokemonId = false
           builderResult.pokemonId = UInt64(0)
           return self
      }
      override public var internalGetResult:GeneratedMessage {
           get {
              return builderResult
           }
      }
      override public func clear() -> Pogoprotos.Networking.Requests.Messages.UpgradePokemonMessage.Builder {
        builderResult = Pogoprotos.Networking.Requests.Messages.UpgradePokemonMessage()
        return self
      }
      override public func clone() throws -> Pogoprotos.Networking.Requests.Messages.UpgradePokemonMessage.Builder {
        return try Pogoprotos.Networking.Requests.Messages.UpgradePokemonMessage.builderWithPrototype(builderResult)
      }
      override public func build() throws -> Pogoprotos.Networking.Requests.Messages.UpgradePokemonMessage {
           try checkInitialized()
           return buildPartial()
      }
      public func buildPartial() -> Pogoprotos.Networking.Requests.Messages.UpgradePokemonMessage {
        let returnMe:Pogoprotos.Networking.Requests.Messages.UpgradePokemonMessage = builderResult
        return returnMe
      }
      public func mergeFrom(other:Pogoprotos.Networking.Requests.Messages.UpgradePokemonMessage) throws -> Pogoprotos.Networking.Requests.Messages.UpgradePokemonMessage.Builder {
        if other == Pogoprotos.Networking.Requests.Messages.UpgradePokemonMessage() {
         return self
        }
        if other.hasPokemonId {
             pokemonId = other.pokemonId
        }
        try mergeUnknownFields(other.unknownFields)
        return self
      }
      override public func mergeFromCodedInputStream(input:CodedInputStream) throws -> Pogoprotos.Networking.Requests.Messages.UpgradePokemonMessage.Builder {
           return try mergeFromCodedInputStream(input, extensionRegistry:ExtensionRegistry())
      }
      override public func mergeFromCodedInputStream(input:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.UpgradePokemonMessage.Builder {
        let unknownFieldsBuilder:UnknownFieldSet.Builder = try UnknownFieldSet.builderWithUnknownFields(self.unknownFields)
        while (true) {
          let protobufTag = try input.readTag()
          switch protobufTag {
          case 0: 
            self.unknownFields = try unknownFieldsBuilder.build()
            return self

          case 9:
            pokemonId = try input.readFixed64()

          default:
            if (!(try parseUnknownField(input,unknownFields:unknownFieldsBuilder, extensionRegistry:extensionRegistry, tag:protobufTag))) {
               unknownFields = try unknownFieldsBuilder.build()
               return self
            }
          }
        }
      }
      override class public func decodeToBuilder(jsonMap:Dictionary<String,AnyObject>) throws -> Pogoprotos.Networking.Requests.Messages.UpgradePokemonMessage.Builder {
        let resultDecodedBuilder = Pogoprotos.Networking.Requests.Messages.UpgradePokemonMessage.Builder()
        if let jsonValuePokemonId = jsonMap["pokemonId"] as? String {
          resultDecodedBuilder.pokemonId = UInt64(jsonValuePokemonId)!
        }
        return resultDecodedBuilder
      }
      override class public func fromJSONToBuilder(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.UpgradePokemonMessage.Builder {
        let jsonData = try NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions(rawValue: 0))
        guard let jsDataCast = jsonData as? Dictionary<String,AnyObject> else {
          throw ProtocolBuffersError.InvalidProtocolBuffer("Invalid JSON data")
        }
        return try Pogoprotos.Networking.Requests.Messages.UpgradePokemonMessage.Builder.decodeToBuilder(jsDataCast)
      }
    }

  }

  final public class UseIncenseMessage : GeneratedMessage, GeneratedMessageProtocol {
    public private(set) var incenseType:Pogoprotos.Inventory.Item.ItemId = Pogoprotos.Inventory.Item.ItemId.ItemUnknown
    public private(set) var hasIncenseType:Bool = false
    required public init() {
         super.init()
    }
    override public func isInitialized() -> Bool {
     return true
    }
    override public func writeToCodedOutputStream(output:CodedOutputStream) throws {
      if hasIncenseType {
        try output.writeEnum(1, value:incenseType.rawValue)
      }
      try unknownFields.writeToCodedOutputStream(output)
    }
    override public func serializedSize() -> Int32 {
      var serialize_size:Int32 = memoizedSerializedSize
      if serialize_size != -1 {
       return serialize_size
      }

      serialize_size = 0
      if (hasIncenseType) {
        serialize_size += incenseType.rawValue.computeEnumSize(1)
      }
      serialize_size += unknownFields.serializedSize()
      memoizedSerializedSize = serialize_size
      return serialize_size
    }
    public class func parseArrayDelimitedFromInputStream(input:NSInputStream) throws -> Array<Pogoprotos.Networking.Requests.Messages.UseIncenseMessage> {
      var mergedArray = Array<Pogoprotos.Networking.Requests.Messages.UseIncenseMessage>()
      while let value = try parseFromDelimitedFromInputStream(input) {
        mergedArray += [value]
      }
      return mergedArray
    }
    public class func parseFromDelimitedFromInputStream(input:NSInputStream) throws -> Pogoprotos.Networking.Requests.Messages.UseIncenseMessage? {
      return try Pogoprotos.Networking.Requests.Messages.UseIncenseMessage.Builder().mergeDelimitedFromInputStream(input)?.build()
    }
    public class func parseFromData(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.UseIncenseMessage {
      return try Pogoprotos.Networking.Requests.Messages.UseIncenseMessage.Builder().mergeFromData(data, extensionRegistry:Pogoprotos.Networking.Requests.Messages.PogoprotosNetworkingRequestsMessagesRoot.sharedInstance.extensionRegistry).build()
    }
    public class func parseFromData(data:NSData, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.UseIncenseMessage {
      return try Pogoprotos.Networking.Requests.Messages.UseIncenseMessage.Builder().mergeFromData(data, extensionRegistry:extensionRegistry).build()
    }
    public class func parseFromInputStream(input:NSInputStream) throws -> Pogoprotos.Networking.Requests.Messages.UseIncenseMessage {
      return try Pogoprotos.Networking.Requests.Messages.UseIncenseMessage.Builder().mergeFromInputStream(input).build()
    }
    public class func parseFromInputStream(input:NSInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.UseIncenseMessage {
      return try Pogoprotos.Networking.Requests.Messages.UseIncenseMessage.Builder().mergeFromInputStream(input, extensionRegistry:extensionRegistry).build()
    }
    public class func parseFromCodedInputStream(input:CodedInputStream) throws -> Pogoprotos.Networking.Requests.Messages.UseIncenseMessage {
      return try Pogoprotos.Networking.Requests.Messages.UseIncenseMessage.Builder().mergeFromCodedInputStream(input).build()
    }
    public class func parseFromCodedInputStream(input:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.UseIncenseMessage {
      return try Pogoprotos.Networking.Requests.Messages.UseIncenseMessage.Builder().mergeFromCodedInputStream(input, extensionRegistry:extensionRegistry).build()
    }
    public class func getBuilder() -> Pogoprotos.Networking.Requests.Messages.UseIncenseMessage.Builder {
      return Pogoprotos.Networking.Requests.Messages.UseIncenseMessage.classBuilder() as! Pogoprotos.Networking.Requests.Messages.UseIncenseMessage.Builder
    }
    public func getBuilder() -> Pogoprotos.Networking.Requests.Messages.UseIncenseMessage.Builder {
      return classBuilder() as! Pogoprotos.Networking.Requests.Messages.UseIncenseMessage.Builder
    }
    override public class func classBuilder() -> MessageBuilder {
      return Pogoprotos.Networking.Requests.Messages.UseIncenseMessage.Builder()
    }
    override public func classBuilder() -> MessageBuilder {
      return Pogoprotos.Networking.Requests.Messages.UseIncenseMessage.Builder()
    }
    public func toBuilder() throws -> Pogoprotos.Networking.Requests.Messages.UseIncenseMessage.Builder {
      return try Pogoprotos.Networking.Requests.Messages.UseIncenseMessage.builderWithPrototype(self)
    }
    public class func builderWithPrototype(prototype:Pogoprotos.Networking.Requests.Messages.UseIncenseMessage) throws -> Pogoprotos.Networking.Requests.Messages.UseIncenseMessage.Builder {
      return try Pogoprotos.Networking.Requests.Messages.UseIncenseMessage.Builder().mergeFrom(prototype)
    }
    override public func encode() throws -> Dictionary<String,AnyObject> {
      guard isInitialized() else {
        throw ProtocolBuffersError.InvalidProtocolBuffer("Uninitialized Message")
      }

      var jsonMap:Dictionary<String,AnyObject> = Dictionary<String,AnyObject>()
      if hasIncenseType {
        jsonMap["incenseType"] = incenseType.toString()
      }
      return jsonMap
    }
    override class public func decode(jsonMap:Dictionary<String,AnyObject>) throws -> Pogoprotos.Networking.Requests.Messages.UseIncenseMessage {
      return try Pogoprotos.Networking.Requests.Messages.UseIncenseMessage.Builder.decodeToBuilder(jsonMap).build()
    }
    override class public func fromJSON(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.UseIncenseMessage {
      return try Pogoprotos.Networking.Requests.Messages.UseIncenseMessage.Builder.fromJSONToBuilder(data).build()
    }
    override public func getDescription(indent:String) throws -> String {
      var output = ""
      if (hasIncenseType) {
        output += "\(indent) incenseType: \(incenseType.description)\n"
      }
      output += unknownFields.getDescription(indent)
      return output
    }
    override public var hashValue:Int {
        get {
            var hashCode:Int = 7
            if hasIncenseType {
               hashCode = (hashCode &* 31) &+ Int(incenseType.rawValue)
            }
            hashCode = (hashCode &* 31) &+  unknownFields.hashValue
            return hashCode
        }
    }


    //Meta information declaration start

    override public class func className() -> String {
        return "Pogoprotos.Networking.Requests.Messages.UseIncenseMessage"
    }
    override public func className() -> String {
        return "Pogoprotos.Networking.Requests.Messages.UseIncenseMessage"
    }
    override public func classMetaType() -> GeneratedMessage.Type {
        return Pogoprotos.Networking.Requests.Messages.UseIncenseMessage.self
    }
    //Meta information declaration end

    final public class Builder : GeneratedMessageBuilder {
      private var builderResult:Pogoprotos.Networking.Requests.Messages.UseIncenseMessage = Pogoprotos.Networking.Requests.Messages.UseIncenseMessage()
      public func getMessage() -> Pogoprotos.Networking.Requests.Messages.UseIncenseMessage {
          return builderResult
      }

      required override public init () {
         super.init()
      }
        public var hasIncenseType:Bool{
            get {
                return builderResult.hasIncenseType
            }
        }
        public var incenseType:Pogoprotos.Inventory.Item.ItemId {
            get {
                return builderResult.incenseType
            }
            set (value) {
                builderResult.hasIncenseType = true
                builderResult.incenseType = value
            }
        }
        public func setIncenseType(value:Pogoprotos.Inventory.Item.ItemId) -> Pogoprotos.Networking.Requests.Messages.UseIncenseMessage.Builder {
          self.incenseType = value
          return self
        }
        public func clearIncenseType() -> Pogoprotos.Networking.Requests.Messages.UseIncenseMessage.Builder {
           builderResult.hasIncenseType = false
           builderResult.incenseType = .ItemUnknown
           return self
        }
      override public var internalGetResult:GeneratedMessage {
           get {
              return builderResult
           }
      }
      override public func clear() -> Pogoprotos.Networking.Requests.Messages.UseIncenseMessage.Builder {
        builderResult = Pogoprotos.Networking.Requests.Messages.UseIncenseMessage()
        return self
      }
      override public func clone() throws -> Pogoprotos.Networking.Requests.Messages.UseIncenseMessage.Builder {
        return try Pogoprotos.Networking.Requests.Messages.UseIncenseMessage.builderWithPrototype(builderResult)
      }
      override public func build() throws -> Pogoprotos.Networking.Requests.Messages.UseIncenseMessage {
           try checkInitialized()
           return buildPartial()
      }
      public func buildPartial() -> Pogoprotos.Networking.Requests.Messages.UseIncenseMessage {
        let returnMe:Pogoprotos.Networking.Requests.Messages.UseIncenseMessage = builderResult
        return returnMe
      }
      public func mergeFrom(other:Pogoprotos.Networking.Requests.Messages.UseIncenseMessage) throws -> Pogoprotos.Networking.Requests.Messages.UseIncenseMessage.Builder {
        if other == Pogoprotos.Networking.Requests.Messages.UseIncenseMessage() {
         return self
        }
        if other.hasIncenseType {
             incenseType = other.incenseType
        }
        try mergeUnknownFields(other.unknownFields)
        return self
      }
      override public func mergeFromCodedInputStream(input:CodedInputStream) throws -> Pogoprotos.Networking.Requests.Messages.UseIncenseMessage.Builder {
           return try mergeFromCodedInputStream(input, extensionRegistry:ExtensionRegistry())
      }
      override public func mergeFromCodedInputStream(input:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.UseIncenseMessage.Builder {
        let unknownFieldsBuilder:UnknownFieldSet.Builder = try UnknownFieldSet.builderWithUnknownFields(self.unknownFields)
        while (true) {
          let protobufTag = try input.readTag()
          switch protobufTag {
          case 0: 
            self.unknownFields = try unknownFieldsBuilder.build()
            return self

          case 8:
            let valueIntincenseType = try input.readEnum()
            if let enumsincenseType = Pogoprotos.Inventory.Item.ItemId(rawValue:valueIntincenseType){
                 incenseType = enumsincenseType
            } else {
                 try unknownFieldsBuilder.mergeVarintField(1, value:Int64(valueIntincenseType))
            }

          default:
            if (!(try parseUnknownField(input,unknownFields:unknownFieldsBuilder, extensionRegistry:extensionRegistry, tag:protobufTag))) {
               unknownFields = try unknownFieldsBuilder.build()
               return self
            }
          }
        }
      }
      override class public func decodeToBuilder(jsonMap:Dictionary<String,AnyObject>) throws -> Pogoprotos.Networking.Requests.Messages.UseIncenseMessage.Builder {
        let resultDecodedBuilder = Pogoprotos.Networking.Requests.Messages.UseIncenseMessage.Builder()
        if let jsonValueIncenseType = jsonMap["incenseType"] as? String {
          resultDecodedBuilder.incenseType = try Pogoprotos.Inventory.Item.ItemId.fromString(jsonValueIncenseType)
        }
        return resultDecodedBuilder
      }
      override class public func fromJSONToBuilder(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.UseIncenseMessage.Builder {
        let jsonData = try NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions(rawValue: 0))
        guard let jsDataCast = jsonData as? Dictionary<String,AnyObject> else {
          throw ProtocolBuffersError.InvalidProtocolBuffer("Invalid JSON data")
        }
        return try Pogoprotos.Networking.Requests.Messages.UseIncenseMessage.Builder.decodeToBuilder(jsDataCast)
      }
    }

  }

  final public class UseItemCaptureMessage : GeneratedMessage, GeneratedMessageProtocol {
    public private(set) var itemId:Pogoprotos.Inventory.Item.ItemId = Pogoprotos.Inventory.Item.ItemId.ItemUnknown
    public private(set) var hasItemId:Bool = false
    public private(set) var hasEncounterId:Bool = false
    public private(set) var encounterId:UInt64 = UInt64(0)

    public private(set) var hasSpawnPointId:Bool = false
    public private(set) var spawnPointId:String = ""

    required public init() {
         super.init()
    }
    override public func isInitialized() -> Bool {
     return true
    }
    override public func writeToCodedOutputStream(output:CodedOutputStream) throws {
      if hasItemId {
        try output.writeEnum(1, value:itemId.rawValue)
      }
      if hasEncounterId {
        try output.writeFixed64(2, value:encounterId)
      }
      if hasSpawnPointId {
        try output.writeString(3, value:spawnPointId)
      }
      try unknownFields.writeToCodedOutputStream(output)
    }
    override public func serializedSize() -> Int32 {
      var serialize_size:Int32 = memoizedSerializedSize
      if serialize_size != -1 {
       return serialize_size
      }

      serialize_size = 0
      if (hasItemId) {
        serialize_size += itemId.rawValue.computeEnumSize(1)
      }
      if hasEncounterId {
        serialize_size += encounterId.computeFixed64Size(2)
      }
      if hasSpawnPointId {
        serialize_size += spawnPointId.computeStringSize(3)
      }
      serialize_size += unknownFields.serializedSize()
      memoizedSerializedSize = serialize_size
      return serialize_size
    }
    public class func parseArrayDelimitedFromInputStream(input:NSInputStream) throws -> Array<Pogoprotos.Networking.Requests.Messages.UseItemCaptureMessage> {
      var mergedArray = Array<Pogoprotos.Networking.Requests.Messages.UseItemCaptureMessage>()
      while let value = try parseFromDelimitedFromInputStream(input) {
        mergedArray += [value]
      }
      return mergedArray
    }
    public class func parseFromDelimitedFromInputStream(input:NSInputStream) throws -> Pogoprotos.Networking.Requests.Messages.UseItemCaptureMessage? {
      return try Pogoprotos.Networking.Requests.Messages.UseItemCaptureMessage.Builder().mergeDelimitedFromInputStream(input)?.build()
    }
    public class func parseFromData(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.UseItemCaptureMessage {
      return try Pogoprotos.Networking.Requests.Messages.UseItemCaptureMessage.Builder().mergeFromData(data, extensionRegistry:Pogoprotos.Networking.Requests.Messages.PogoprotosNetworkingRequestsMessagesRoot.sharedInstance.extensionRegistry).build()
    }
    public class func parseFromData(data:NSData, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.UseItemCaptureMessage {
      return try Pogoprotos.Networking.Requests.Messages.UseItemCaptureMessage.Builder().mergeFromData(data, extensionRegistry:extensionRegistry).build()
    }
    public class func parseFromInputStream(input:NSInputStream) throws -> Pogoprotos.Networking.Requests.Messages.UseItemCaptureMessage {
      return try Pogoprotos.Networking.Requests.Messages.UseItemCaptureMessage.Builder().mergeFromInputStream(input).build()
    }
    public class func parseFromInputStream(input:NSInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.UseItemCaptureMessage {
      return try Pogoprotos.Networking.Requests.Messages.UseItemCaptureMessage.Builder().mergeFromInputStream(input, extensionRegistry:extensionRegistry).build()
    }
    public class func parseFromCodedInputStream(input:CodedInputStream) throws -> Pogoprotos.Networking.Requests.Messages.UseItemCaptureMessage {
      return try Pogoprotos.Networking.Requests.Messages.UseItemCaptureMessage.Builder().mergeFromCodedInputStream(input).build()
    }
    public class func parseFromCodedInputStream(input:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.UseItemCaptureMessage {
      return try Pogoprotos.Networking.Requests.Messages.UseItemCaptureMessage.Builder().mergeFromCodedInputStream(input, extensionRegistry:extensionRegistry).build()
    }
    public class func getBuilder() -> Pogoprotos.Networking.Requests.Messages.UseItemCaptureMessage.Builder {
      return Pogoprotos.Networking.Requests.Messages.UseItemCaptureMessage.classBuilder() as! Pogoprotos.Networking.Requests.Messages.UseItemCaptureMessage.Builder
    }
    public func getBuilder() -> Pogoprotos.Networking.Requests.Messages.UseItemCaptureMessage.Builder {
      return classBuilder() as! Pogoprotos.Networking.Requests.Messages.UseItemCaptureMessage.Builder
    }
    override public class func classBuilder() -> MessageBuilder {
      return Pogoprotos.Networking.Requests.Messages.UseItemCaptureMessage.Builder()
    }
    override public func classBuilder() -> MessageBuilder {
      return Pogoprotos.Networking.Requests.Messages.UseItemCaptureMessage.Builder()
    }
    public func toBuilder() throws -> Pogoprotos.Networking.Requests.Messages.UseItemCaptureMessage.Builder {
      return try Pogoprotos.Networking.Requests.Messages.UseItemCaptureMessage.builderWithPrototype(self)
    }
    public class func builderWithPrototype(prototype:Pogoprotos.Networking.Requests.Messages.UseItemCaptureMessage) throws -> Pogoprotos.Networking.Requests.Messages.UseItemCaptureMessage.Builder {
      return try Pogoprotos.Networking.Requests.Messages.UseItemCaptureMessage.Builder().mergeFrom(prototype)
    }
    override public func encode() throws -> Dictionary<String,AnyObject> {
      guard isInitialized() else {
        throw ProtocolBuffersError.InvalidProtocolBuffer("Uninitialized Message")
      }

      var jsonMap:Dictionary<String,AnyObject> = Dictionary<String,AnyObject>()
      if hasItemId {
        jsonMap["itemId"] = itemId.toString()
      }
      if hasEncounterId {
        jsonMap["encounterId"] = "\(encounterId)"
      }
      if hasSpawnPointId {
        jsonMap["spawnPointId"] = spawnPointId
      }
      return jsonMap
    }
    override class public func decode(jsonMap:Dictionary<String,AnyObject>) throws -> Pogoprotos.Networking.Requests.Messages.UseItemCaptureMessage {
      return try Pogoprotos.Networking.Requests.Messages.UseItemCaptureMessage.Builder.decodeToBuilder(jsonMap).build()
    }
    override class public func fromJSON(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.UseItemCaptureMessage {
      return try Pogoprotos.Networking.Requests.Messages.UseItemCaptureMessage.Builder.fromJSONToBuilder(data).build()
    }
    override public func getDescription(indent:String) throws -> String {
      var output = ""
      if (hasItemId) {
        output += "\(indent) itemId: \(itemId.description)\n"
      }
      if hasEncounterId {
        output += "\(indent) encounterId: \(encounterId) \n"
      }
      if hasSpawnPointId {
        output += "\(indent) spawnPointId: \(spawnPointId) \n"
      }
      output += unknownFields.getDescription(indent)
      return output
    }
    override public var hashValue:Int {
        get {
            var hashCode:Int = 7
            if hasItemId {
               hashCode = (hashCode &* 31) &+ Int(itemId.rawValue)
            }
            if hasEncounterId {
               hashCode = (hashCode &* 31) &+ encounterId.hashValue
            }
            if hasSpawnPointId {
               hashCode = (hashCode &* 31) &+ spawnPointId.hashValue
            }
            hashCode = (hashCode &* 31) &+  unknownFields.hashValue
            return hashCode
        }
    }


    //Meta information declaration start

    override public class func className() -> String {
        return "Pogoprotos.Networking.Requests.Messages.UseItemCaptureMessage"
    }
    override public func className() -> String {
        return "Pogoprotos.Networking.Requests.Messages.UseItemCaptureMessage"
    }
    override public func classMetaType() -> GeneratedMessage.Type {
        return Pogoprotos.Networking.Requests.Messages.UseItemCaptureMessage.self
    }
    //Meta information declaration end

    final public class Builder : GeneratedMessageBuilder {
      private var builderResult:Pogoprotos.Networking.Requests.Messages.UseItemCaptureMessage = Pogoprotos.Networking.Requests.Messages.UseItemCaptureMessage()
      public func getMessage() -> Pogoprotos.Networking.Requests.Messages.UseItemCaptureMessage {
          return builderResult
      }

      required override public init () {
         super.init()
      }
        public var hasItemId:Bool{
            get {
                return builderResult.hasItemId
            }
        }
        public var itemId:Pogoprotos.Inventory.Item.ItemId {
            get {
                return builderResult.itemId
            }
            set (value) {
                builderResult.hasItemId = true
                builderResult.itemId = value
            }
        }
        public func setItemId(value:Pogoprotos.Inventory.Item.ItemId) -> Pogoprotos.Networking.Requests.Messages.UseItemCaptureMessage.Builder {
          self.itemId = value
          return self
        }
        public func clearItemId() -> Pogoprotos.Networking.Requests.Messages.UseItemCaptureMessage.Builder {
           builderResult.hasItemId = false
           builderResult.itemId = .ItemUnknown
           return self
        }
      public var hasEncounterId:Bool {
           get {
                return builderResult.hasEncounterId
           }
      }
      public var encounterId:UInt64 {
           get {
                return builderResult.encounterId
           }
           set (value) {
               builderResult.hasEncounterId = true
               builderResult.encounterId = value
           }
      }
      public func setEncounterId(value:UInt64) -> Pogoprotos.Networking.Requests.Messages.UseItemCaptureMessage.Builder {
        self.encounterId = value
        return self
      }
      public func clearEncounterId() -> Pogoprotos.Networking.Requests.Messages.UseItemCaptureMessage.Builder{
           builderResult.hasEncounterId = false
           builderResult.encounterId = UInt64(0)
           return self
      }
      public var hasSpawnPointId:Bool {
           get {
                return builderResult.hasSpawnPointId
           }
      }
      public var spawnPointId:String {
           get {
                return builderResult.spawnPointId
           }
           set (value) {
               builderResult.hasSpawnPointId = true
               builderResult.spawnPointId = value
           }
      }
      public func setSpawnPointId(value:String) -> Pogoprotos.Networking.Requests.Messages.UseItemCaptureMessage.Builder {
        self.spawnPointId = value
        return self
      }
      public func clearSpawnPointId() -> Pogoprotos.Networking.Requests.Messages.UseItemCaptureMessage.Builder{
           builderResult.hasSpawnPointId = false
           builderResult.spawnPointId = ""
           return self
      }
      override public var internalGetResult:GeneratedMessage {
           get {
              return builderResult
           }
      }
      override public func clear() -> Pogoprotos.Networking.Requests.Messages.UseItemCaptureMessage.Builder {
        builderResult = Pogoprotos.Networking.Requests.Messages.UseItemCaptureMessage()
        return self
      }
      override public func clone() throws -> Pogoprotos.Networking.Requests.Messages.UseItemCaptureMessage.Builder {
        return try Pogoprotos.Networking.Requests.Messages.UseItemCaptureMessage.builderWithPrototype(builderResult)
      }
      override public func build() throws -> Pogoprotos.Networking.Requests.Messages.UseItemCaptureMessage {
           try checkInitialized()
           return buildPartial()
      }
      public func buildPartial() -> Pogoprotos.Networking.Requests.Messages.UseItemCaptureMessage {
        let returnMe:Pogoprotos.Networking.Requests.Messages.UseItemCaptureMessage = builderResult
        return returnMe
      }
      public func mergeFrom(other:Pogoprotos.Networking.Requests.Messages.UseItemCaptureMessage) throws -> Pogoprotos.Networking.Requests.Messages.UseItemCaptureMessage.Builder {
        if other == Pogoprotos.Networking.Requests.Messages.UseItemCaptureMessage() {
         return self
        }
        if other.hasItemId {
             itemId = other.itemId
        }
        if other.hasEncounterId {
             encounterId = other.encounterId
        }
        if other.hasSpawnPointId {
             spawnPointId = other.spawnPointId
        }
        try mergeUnknownFields(other.unknownFields)
        return self
      }
      override public func mergeFromCodedInputStream(input:CodedInputStream) throws -> Pogoprotos.Networking.Requests.Messages.UseItemCaptureMessage.Builder {
           return try mergeFromCodedInputStream(input, extensionRegistry:ExtensionRegistry())
      }
      override public func mergeFromCodedInputStream(input:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.UseItemCaptureMessage.Builder {
        let unknownFieldsBuilder:UnknownFieldSet.Builder = try UnknownFieldSet.builderWithUnknownFields(self.unknownFields)
        while (true) {
          let protobufTag = try input.readTag()
          switch protobufTag {
          case 0: 
            self.unknownFields = try unknownFieldsBuilder.build()
            return self

          case 8:
            let valueIntitemId = try input.readEnum()
            if let enumsitemId = Pogoprotos.Inventory.Item.ItemId(rawValue:valueIntitemId){
                 itemId = enumsitemId
            } else {
                 try unknownFieldsBuilder.mergeVarintField(1, value:Int64(valueIntitemId))
            }

          case 17:
            encounterId = try input.readFixed64()

          case 26:
            spawnPointId = try input.readString()

          default:
            if (!(try parseUnknownField(input,unknownFields:unknownFieldsBuilder, extensionRegistry:extensionRegistry, tag:protobufTag))) {
               unknownFields = try unknownFieldsBuilder.build()
               return self
            }
          }
        }
      }
      override class public func decodeToBuilder(jsonMap:Dictionary<String,AnyObject>) throws -> Pogoprotos.Networking.Requests.Messages.UseItemCaptureMessage.Builder {
        let resultDecodedBuilder = Pogoprotos.Networking.Requests.Messages.UseItemCaptureMessage.Builder()
        if let jsonValueItemId = jsonMap["itemId"] as? String {
          resultDecodedBuilder.itemId = try Pogoprotos.Inventory.Item.ItemId.fromString(jsonValueItemId)
        }
        if let jsonValueEncounterId = jsonMap["encounterId"] as? String {
          resultDecodedBuilder.encounterId = UInt64(jsonValueEncounterId)!
        }
        if let jsonValueSpawnPointId = jsonMap["spawnPointId"] as? String {
          resultDecodedBuilder.spawnPointId = jsonValueSpawnPointId
        }
        return resultDecodedBuilder
      }
      override class public func fromJSONToBuilder(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.UseItemCaptureMessage.Builder {
        let jsonData = try NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions(rawValue: 0))
        guard let jsDataCast = jsonData as? Dictionary<String,AnyObject> else {
          throw ProtocolBuffersError.InvalidProtocolBuffer("Invalid JSON data")
        }
        return try Pogoprotos.Networking.Requests.Messages.UseItemCaptureMessage.Builder.decodeToBuilder(jsDataCast)
      }
    }

  }

  final public class UseItemEggIncubatorMessage : GeneratedMessage, GeneratedMessageProtocol {
    public private(set) var hasItemId:Bool = false
    public private(set) var itemId:String = ""

    public private(set) var hasPokemonId:Bool = false
    public private(set) var pokemonId:UInt64 = UInt64(0)

    required public init() {
         super.init()
    }
    override public func isInitialized() -> Bool {
     return true
    }
    override public func writeToCodedOutputStream(output:CodedOutputStream) throws {
      if hasItemId {
        try output.writeString(1, value:itemId)
      }
      if hasPokemonId {
        try output.writeUInt64(2, value:pokemonId)
      }
      try unknownFields.writeToCodedOutputStream(output)
    }
    override public func serializedSize() -> Int32 {
      var serialize_size:Int32 = memoizedSerializedSize
      if serialize_size != -1 {
       return serialize_size
      }

      serialize_size = 0
      if hasItemId {
        serialize_size += itemId.computeStringSize(1)
      }
      if hasPokemonId {
        serialize_size += pokemonId.computeUInt64Size(2)
      }
      serialize_size += unknownFields.serializedSize()
      memoizedSerializedSize = serialize_size
      return serialize_size
    }
    public class func parseArrayDelimitedFromInputStream(input:NSInputStream) throws -> Array<Pogoprotos.Networking.Requests.Messages.UseItemEggIncubatorMessage> {
      var mergedArray = Array<Pogoprotos.Networking.Requests.Messages.UseItemEggIncubatorMessage>()
      while let value = try parseFromDelimitedFromInputStream(input) {
        mergedArray += [value]
      }
      return mergedArray
    }
    public class func parseFromDelimitedFromInputStream(input:NSInputStream) throws -> Pogoprotos.Networking.Requests.Messages.UseItemEggIncubatorMessage? {
      return try Pogoprotos.Networking.Requests.Messages.UseItemEggIncubatorMessage.Builder().mergeDelimitedFromInputStream(input)?.build()
    }
    public class func parseFromData(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.UseItemEggIncubatorMessage {
      return try Pogoprotos.Networking.Requests.Messages.UseItemEggIncubatorMessage.Builder().mergeFromData(data, extensionRegistry:Pogoprotos.Networking.Requests.Messages.PogoprotosNetworkingRequestsMessagesRoot.sharedInstance.extensionRegistry).build()
    }
    public class func parseFromData(data:NSData, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.UseItemEggIncubatorMessage {
      return try Pogoprotos.Networking.Requests.Messages.UseItemEggIncubatorMessage.Builder().mergeFromData(data, extensionRegistry:extensionRegistry).build()
    }
    public class func parseFromInputStream(input:NSInputStream) throws -> Pogoprotos.Networking.Requests.Messages.UseItemEggIncubatorMessage {
      return try Pogoprotos.Networking.Requests.Messages.UseItemEggIncubatorMessage.Builder().mergeFromInputStream(input).build()
    }
    public class func parseFromInputStream(input:NSInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.UseItemEggIncubatorMessage {
      return try Pogoprotos.Networking.Requests.Messages.UseItemEggIncubatorMessage.Builder().mergeFromInputStream(input, extensionRegistry:extensionRegistry).build()
    }
    public class func parseFromCodedInputStream(input:CodedInputStream) throws -> Pogoprotos.Networking.Requests.Messages.UseItemEggIncubatorMessage {
      return try Pogoprotos.Networking.Requests.Messages.UseItemEggIncubatorMessage.Builder().mergeFromCodedInputStream(input).build()
    }
    public class func parseFromCodedInputStream(input:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.UseItemEggIncubatorMessage {
      return try Pogoprotos.Networking.Requests.Messages.UseItemEggIncubatorMessage.Builder().mergeFromCodedInputStream(input, extensionRegistry:extensionRegistry).build()
    }
    public class func getBuilder() -> Pogoprotos.Networking.Requests.Messages.UseItemEggIncubatorMessage.Builder {
      return Pogoprotos.Networking.Requests.Messages.UseItemEggIncubatorMessage.classBuilder() as! Pogoprotos.Networking.Requests.Messages.UseItemEggIncubatorMessage.Builder
    }
    public func getBuilder() -> Pogoprotos.Networking.Requests.Messages.UseItemEggIncubatorMessage.Builder {
      return classBuilder() as! Pogoprotos.Networking.Requests.Messages.UseItemEggIncubatorMessage.Builder
    }
    override public class func classBuilder() -> MessageBuilder {
      return Pogoprotos.Networking.Requests.Messages.UseItemEggIncubatorMessage.Builder()
    }
    override public func classBuilder() -> MessageBuilder {
      return Pogoprotos.Networking.Requests.Messages.UseItemEggIncubatorMessage.Builder()
    }
    public func toBuilder() throws -> Pogoprotos.Networking.Requests.Messages.UseItemEggIncubatorMessage.Builder {
      return try Pogoprotos.Networking.Requests.Messages.UseItemEggIncubatorMessage.builderWithPrototype(self)
    }
    public class func builderWithPrototype(prototype:Pogoprotos.Networking.Requests.Messages.UseItemEggIncubatorMessage) throws -> Pogoprotos.Networking.Requests.Messages.UseItemEggIncubatorMessage.Builder {
      return try Pogoprotos.Networking.Requests.Messages.UseItemEggIncubatorMessage.Builder().mergeFrom(prototype)
    }
    override public func encode() throws -> Dictionary<String,AnyObject> {
      guard isInitialized() else {
        throw ProtocolBuffersError.InvalidProtocolBuffer("Uninitialized Message")
      }

      var jsonMap:Dictionary<String,AnyObject> = Dictionary<String,AnyObject>()
      if hasItemId {
        jsonMap["itemId"] = itemId
      }
      if hasPokemonId {
        jsonMap["pokemonId"] = "\(pokemonId)"
      }
      return jsonMap
    }
    override class public func decode(jsonMap:Dictionary<String,AnyObject>) throws -> Pogoprotos.Networking.Requests.Messages.UseItemEggIncubatorMessage {
      return try Pogoprotos.Networking.Requests.Messages.UseItemEggIncubatorMessage.Builder.decodeToBuilder(jsonMap).build()
    }
    override class public func fromJSON(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.UseItemEggIncubatorMessage {
      return try Pogoprotos.Networking.Requests.Messages.UseItemEggIncubatorMessage.Builder.fromJSONToBuilder(data).build()
    }
    override public func getDescription(indent:String) throws -> String {
      var output = ""
      if hasItemId {
        output += "\(indent) itemId: \(itemId) \n"
      }
      if hasPokemonId {
        output += "\(indent) pokemonId: \(pokemonId) \n"
      }
      output += unknownFields.getDescription(indent)
      return output
    }
    override public var hashValue:Int {
        get {
            var hashCode:Int = 7
            if hasItemId {
               hashCode = (hashCode &* 31) &+ itemId.hashValue
            }
            if hasPokemonId {
               hashCode = (hashCode &* 31) &+ pokemonId.hashValue
            }
            hashCode = (hashCode &* 31) &+  unknownFields.hashValue
            return hashCode
        }
    }


    //Meta information declaration start

    override public class func className() -> String {
        return "Pogoprotos.Networking.Requests.Messages.UseItemEggIncubatorMessage"
    }
    override public func className() -> String {
        return "Pogoprotos.Networking.Requests.Messages.UseItemEggIncubatorMessage"
    }
    override public func classMetaType() -> GeneratedMessage.Type {
        return Pogoprotos.Networking.Requests.Messages.UseItemEggIncubatorMessage.self
    }
    //Meta information declaration end

    final public class Builder : GeneratedMessageBuilder {
      private var builderResult:Pogoprotos.Networking.Requests.Messages.UseItemEggIncubatorMessage = Pogoprotos.Networking.Requests.Messages.UseItemEggIncubatorMessage()
      public func getMessage() -> Pogoprotos.Networking.Requests.Messages.UseItemEggIncubatorMessage {
          return builderResult
      }

      required override public init () {
         super.init()
      }
      public var hasItemId:Bool {
           get {
                return builderResult.hasItemId
           }
      }
      public var itemId:String {
           get {
                return builderResult.itemId
           }
           set (value) {
               builderResult.hasItemId = true
               builderResult.itemId = value
           }
      }
      public func setItemId(value:String) -> Pogoprotos.Networking.Requests.Messages.UseItemEggIncubatorMessage.Builder {
        self.itemId = value
        return self
      }
      public func clearItemId() -> Pogoprotos.Networking.Requests.Messages.UseItemEggIncubatorMessage.Builder{
           builderResult.hasItemId = false
           builderResult.itemId = ""
           return self
      }
      public var hasPokemonId:Bool {
           get {
                return builderResult.hasPokemonId
           }
      }
      public var pokemonId:UInt64 {
           get {
                return builderResult.pokemonId
           }
           set (value) {
               builderResult.hasPokemonId = true
               builderResult.pokemonId = value
           }
      }
      public func setPokemonId(value:UInt64) -> Pogoprotos.Networking.Requests.Messages.UseItemEggIncubatorMessage.Builder {
        self.pokemonId = value
        return self
      }
      public func clearPokemonId() -> Pogoprotos.Networking.Requests.Messages.UseItemEggIncubatorMessage.Builder{
           builderResult.hasPokemonId = false
           builderResult.pokemonId = UInt64(0)
           return self
      }
      override public var internalGetResult:GeneratedMessage {
           get {
              return builderResult
           }
      }
      override public func clear() -> Pogoprotos.Networking.Requests.Messages.UseItemEggIncubatorMessage.Builder {
        builderResult = Pogoprotos.Networking.Requests.Messages.UseItemEggIncubatorMessage()
        return self
      }
      override public func clone() throws -> Pogoprotos.Networking.Requests.Messages.UseItemEggIncubatorMessage.Builder {
        return try Pogoprotos.Networking.Requests.Messages.UseItemEggIncubatorMessage.builderWithPrototype(builderResult)
      }
      override public func build() throws -> Pogoprotos.Networking.Requests.Messages.UseItemEggIncubatorMessage {
           try checkInitialized()
           return buildPartial()
      }
      public func buildPartial() -> Pogoprotos.Networking.Requests.Messages.UseItemEggIncubatorMessage {
        let returnMe:Pogoprotos.Networking.Requests.Messages.UseItemEggIncubatorMessage = builderResult
        return returnMe
      }
      public func mergeFrom(other:Pogoprotos.Networking.Requests.Messages.UseItemEggIncubatorMessage) throws -> Pogoprotos.Networking.Requests.Messages.UseItemEggIncubatorMessage.Builder {
        if other == Pogoprotos.Networking.Requests.Messages.UseItemEggIncubatorMessage() {
         return self
        }
        if other.hasItemId {
             itemId = other.itemId
        }
        if other.hasPokemonId {
             pokemonId = other.pokemonId
        }
        try mergeUnknownFields(other.unknownFields)
        return self
      }
      override public func mergeFromCodedInputStream(input:CodedInputStream) throws -> Pogoprotos.Networking.Requests.Messages.UseItemEggIncubatorMessage.Builder {
           return try mergeFromCodedInputStream(input, extensionRegistry:ExtensionRegistry())
      }
      override public func mergeFromCodedInputStream(input:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.UseItemEggIncubatorMessage.Builder {
        let unknownFieldsBuilder:UnknownFieldSet.Builder = try UnknownFieldSet.builderWithUnknownFields(self.unknownFields)
        while (true) {
          let protobufTag = try input.readTag()
          switch protobufTag {
          case 0: 
            self.unknownFields = try unknownFieldsBuilder.build()
            return self

          case 10:
            itemId = try input.readString()

          case 16:
            pokemonId = try input.readUInt64()

          default:
            if (!(try parseUnknownField(input,unknownFields:unknownFieldsBuilder, extensionRegistry:extensionRegistry, tag:protobufTag))) {
               unknownFields = try unknownFieldsBuilder.build()
               return self
            }
          }
        }
      }
      override class public func decodeToBuilder(jsonMap:Dictionary<String,AnyObject>) throws -> Pogoprotos.Networking.Requests.Messages.UseItemEggIncubatorMessage.Builder {
        let resultDecodedBuilder = Pogoprotos.Networking.Requests.Messages.UseItemEggIncubatorMessage.Builder()
        if let jsonValueItemId = jsonMap["itemId"] as? String {
          resultDecodedBuilder.itemId = jsonValueItemId
        }
        if let jsonValuePokemonId = jsonMap["pokemonId"] as? String {
          resultDecodedBuilder.pokemonId = UInt64(jsonValuePokemonId)!
        }
        return resultDecodedBuilder
      }
      override class public func fromJSONToBuilder(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.UseItemEggIncubatorMessage.Builder {
        let jsonData = try NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions(rawValue: 0))
        guard let jsDataCast = jsonData as? Dictionary<String,AnyObject> else {
          throw ProtocolBuffersError.InvalidProtocolBuffer("Invalid JSON data")
        }
        return try Pogoprotos.Networking.Requests.Messages.UseItemEggIncubatorMessage.Builder.decodeToBuilder(jsDataCast)
      }
    }

  }

  final public class UseItemGymMessage : GeneratedMessage, GeneratedMessageProtocol {
    public private(set) var itemId:Pogoprotos.Inventory.Item.ItemId = Pogoprotos.Inventory.Item.ItemId.ItemUnknown
    public private(set) var hasItemId:Bool = false
    public private(set) var hasGymId:Bool = false
    public private(set) var gymId:String = ""

    public private(set) var hasPlayerLatitude:Bool = false
    public private(set) var playerLatitude:Double = Double(0)

    public private(set) var hasPlayerLongitude:Bool = false
    public private(set) var playerLongitude:Double = Double(0)

    required public init() {
         super.init()
    }
    override public func isInitialized() -> Bool {
     return true
    }
    override public func writeToCodedOutputStream(output:CodedOutputStream) throws {
      if hasItemId {
        try output.writeEnum(1, value:itemId.rawValue)
      }
      if hasGymId {
        try output.writeString(2, value:gymId)
      }
      if hasPlayerLatitude {
        try output.writeDouble(3, value:playerLatitude)
      }
      if hasPlayerLongitude {
        try output.writeDouble(4, value:playerLongitude)
      }
      try unknownFields.writeToCodedOutputStream(output)
    }
    override public func serializedSize() -> Int32 {
      var serialize_size:Int32 = memoizedSerializedSize
      if serialize_size != -1 {
       return serialize_size
      }

      serialize_size = 0
      if (hasItemId) {
        serialize_size += itemId.rawValue.computeEnumSize(1)
      }
      if hasGymId {
        serialize_size += gymId.computeStringSize(2)
      }
      if hasPlayerLatitude {
        serialize_size += playerLatitude.computeDoubleSize(3)
      }
      if hasPlayerLongitude {
        serialize_size += playerLongitude.computeDoubleSize(4)
      }
      serialize_size += unknownFields.serializedSize()
      memoizedSerializedSize = serialize_size
      return serialize_size
    }
    public class func parseArrayDelimitedFromInputStream(input:NSInputStream) throws -> Array<Pogoprotos.Networking.Requests.Messages.UseItemGymMessage> {
      var mergedArray = Array<Pogoprotos.Networking.Requests.Messages.UseItemGymMessage>()
      while let value = try parseFromDelimitedFromInputStream(input) {
        mergedArray += [value]
      }
      return mergedArray
    }
    public class func parseFromDelimitedFromInputStream(input:NSInputStream) throws -> Pogoprotos.Networking.Requests.Messages.UseItemGymMessage? {
      return try Pogoprotos.Networking.Requests.Messages.UseItemGymMessage.Builder().mergeDelimitedFromInputStream(input)?.build()
    }
    public class func parseFromData(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.UseItemGymMessage {
      return try Pogoprotos.Networking.Requests.Messages.UseItemGymMessage.Builder().mergeFromData(data, extensionRegistry:Pogoprotos.Networking.Requests.Messages.PogoprotosNetworkingRequestsMessagesRoot.sharedInstance.extensionRegistry).build()
    }
    public class func parseFromData(data:NSData, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.UseItemGymMessage {
      return try Pogoprotos.Networking.Requests.Messages.UseItemGymMessage.Builder().mergeFromData(data, extensionRegistry:extensionRegistry).build()
    }
    public class func parseFromInputStream(input:NSInputStream) throws -> Pogoprotos.Networking.Requests.Messages.UseItemGymMessage {
      return try Pogoprotos.Networking.Requests.Messages.UseItemGymMessage.Builder().mergeFromInputStream(input).build()
    }
    public class func parseFromInputStream(input:NSInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.UseItemGymMessage {
      return try Pogoprotos.Networking.Requests.Messages.UseItemGymMessage.Builder().mergeFromInputStream(input, extensionRegistry:extensionRegistry).build()
    }
    public class func parseFromCodedInputStream(input:CodedInputStream) throws -> Pogoprotos.Networking.Requests.Messages.UseItemGymMessage {
      return try Pogoprotos.Networking.Requests.Messages.UseItemGymMessage.Builder().mergeFromCodedInputStream(input).build()
    }
    public class func parseFromCodedInputStream(input:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.UseItemGymMessage {
      return try Pogoprotos.Networking.Requests.Messages.UseItemGymMessage.Builder().mergeFromCodedInputStream(input, extensionRegistry:extensionRegistry).build()
    }
    public class func getBuilder() -> Pogoprotos.Networking.Requests.Messages.UseItemGymMessage.Builder {
      return Pogoprotos.Networking.Requests.Messages.UseItemGymMessage.classBuilder() as! Pogoprotos.Networking.Requests.Messages.UseItemGymMessage.Builder
    }
    public func getBuilder() -> Pogoprotos.Networking.Requests.Messages.UseItemGymMessage.Builder {
      return classBuilder() as! Pogoprotos.Networking.Requests.Messages.UseItemGymMessage.Builder
    }
    override public class func classBuilder() -> MessageBuilder {
      return Pogoprotos.Networking.Requests.Messages.UseItemGymMessage.Builder()
    }
    override public func classBuilder() -> MessageBuilder {
      return Pogoprotos.Networking.Requests.Messages.UseItemGymMessage.Builder()
    }
    public func toBuilder() throws -> Pogoprotos.Networking.Requests.Messages.UseItemGymMessage.Builder {
      return try Pogoprotos.Networking.Requests.Messages.UseItemGymMessage.builderWithPrototype(self)
    }
    public class func builderWithPrototype(prototype:Pogoprotos.Networking.Requests.Messages.UseItemGymMessage) throws -> Pogoprotos.Networking.Requests.Messages.UseItemGymMessage.Builder {
      return try Pogoprotos.Networking.Requests.Messages.UseItemGymMessage.Builder().mergeFrom(prototype)
    }
    override public func encode() throws -> Dictionary<String,AnyObject> {
      guard isInitialized() else {
        throw ProtocolBuffersError.InvalidProtocolBuffer("Uninitialized Message")
      }

      var jsonMap:Dictionary<String,AnyObject> = Dictionary<String,AnyObject>()
      if hasItemId {
        jsonMap["itemId"] = itemId.toString()
      }
      if hasGymId {
        jsonMap["gymId"] = gymId
      }
      if hasPlayerLatitude {
        jsonMap["playerLatitude"] = NSNumber(double:playerLatitude)
      }
      if hasPlayerLongitude {
        jsonMap["playerLongitude"] = NSNumber(double:playerLongitude)
      }
      return jsonMap
    }
    override class public func decode(jsonMap:Dictionary<String,AnyObject>) throws -> Pogoprotos.Networking.Requests.Messages.UseItemGymMessage {
      return try Pogoprotos.Networking.Requests.Messages.UseItemGymMessage.Builder.decodeToBuilder(jsonMap).build()
    }
    override class public func fromJSON(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.UseItemGymMessage {
      return try Pogoprotos.Networking.Requests.Messages.UseItemGymMessage.Builder.fromJSONToBuilder(data).build()
    }
    override public func getDescription(indent:String) throws -> String {
      var output = ""
      if (hasItemId) {
        output += "\(indent) itemId: \(itemId.description)\n"
      }
      if hasGymId {
        output += "\(indent) gymId: \(gymId) \n"
      }
      if hasPlayerLatitude {
        output += "\(indent) playerLatitude: \(playerLatitude) \n"
      }
      if hasPlayerLongitude {
        output += "\(indent) playerLongitude: \(playerLongitude) \n"
      }
      output += unknownFields.getDescription(indent)
      return output
    }
    override public var hashValue:Int {
        get {
            var hashCode:Int = 7
            if hasItemId {
               hashCode = (hashCode &* 31) &+ Int(itemId.rawValue)
            }
            if hasGymId {
               hashCode = (hashCode &* 31) &+ gymId.hashValue
            }
            if hasPlayerLatitude {
               hashCode = (hashCode &* 31) &+ playerLatitude.hashValue
            }
            if hasPlayerLongitude {
               hashCode = (hashCode &* 31) &+ playerLongitude.hashValue
            }
            hashCode = (hashCode &* 31) &+  unknownFields.hashValue
            return hashCode
        }
    }


    //Meta information declaration start

    override public class func className() -> String {
        return "Pogoprotos.Networking.Requests.Messages.UseItemGymMessage"
    }
    override public func className() -> String {
        return "Pogoprotos.Networking.Requests.Messages.UseItemGymMessage"
    }
    override public func classMetaType() -> GeneratedMessage.Type {
        return Pogoprotos.Networking.Requests.Messages.UseItemGymMessage.self
    }
    //Meta information declaration end

    final public class Builder : GeneratedMessageBuilder {
      private var builderResult:Pogoprotos.Networking.Requests.Messages.UseItemGymMessage = Pogoprotos.Networking.Requests.Messages.UseItemGymMessage()
      public func getMessage() -> Pogoprotos.Networking.Requests.Messages.UseItemGymMessage {
          return builderResult
      }

      required override public init () {
         super.init()
      }
        public var hasItemId:Bool{
            get {
                return builderResult.hasItemId
            }
        }
        public var itemId:Pogoprotos.Inventory.Item.ItemId {
            get {
                return builderResult.itemId
            }
            set (value) {
                builderResult.hasItemId = true
                builderResult.itemId = value
            }
        }
        public func setItemId(value:Pogoprotos.Inventory.Item.ItemId) -> Pogoprotos.Networking.Requests.Messages.UseItemGymMessage.Builder {
          self.itemId = value
          return self
        }
        public func clearItemId() -> Pogoprotos.Networking.Requests.Messages.UseItemGymMessage.Builder {
           builderResult.hasItemId = false
           builderResult.itemId = .ItemUnknown
           return self
        }
      public var hasGymId:Bool {
           get {
                return builderResult.hasGymId
           }
      }
      public var gymId:String {
           get {
                return builderResult.gymId
           }
           set (value) {
               builderResult.hasGymId = true
               builderResult.gymId = value
           }
      }
      public func setGymId(value:String) -> Pogoprotos.Networking.Requests.Messages.UseItemGymMessage.Builder {
        self.gymId = value
        return self
      }
      public func clearGymId() -> Pogoprotos.Networking.Requests.Messages.UseItemGymMessage.Builder{
           builderResult.hasGymId = false
           builderResult.gymId = ""
           return self
      }
      public var hasPlayerLatitude:Bool {
           get {
                return builderResult.hasPlayerLatitude
           }
      }
      public var playerLatitude:Double {
           get {
                return builderResult.playerLatitude
           }
           set (value) {
               builderResult.hasPlayerLatitude = true
               builderResult.playerLatitude = value
           }
      }
      public func setPlayerLatitude(value:Double) -> Pogoprotos.Networking.Requests.Messages.UseItemGymMessage.Builder {
        self.playerLatitude = value
        return self
      }
      public func clearPlayerLatitude() -> Pogoprotos.Networking.Requests.Messages.UseItemGymMessage.Builder{
           builderResult.hasPlayerLatitude = false
           builderResult.playerLatitude = Double(0)
           return self
      }
      public var hasPlayerLongitude:Bool {
           get {
                return builderResult.hasPlayerLongitude
           }
      }
      public var playerLongitude:Double {
           get {
                return builderResult.playerLongitude
           }
           set (value) {
               builderResult.hasPlayerLongitude = true
               builderResult.playerLongitude = value
           }
      }
      public func setPlayerLongitude(value:Double) -> Pogoprotos.Networking.Requests.Messages.UseItemGymMessage.Builder {
        self.playerLongitude = value
        return self
      }
      public func clearPlayerLongitude() -> Pogoprotos.Networking.Requests.Messages.UseItemGymMessage.Builder{
           builderResult.hasPlayerLongitude = false
           builderResult.playerLongitude = Double(0)
           return self
      }
      override public var internalGetResult:GeneratedMessage {
           get {
              return builderResult
           }
      }
      override public func clear() -> Pogoprotos.Networking.Requests.Messages.UseItemGymMessage.Builder {
        builderResult = Pogoprotos.Networking.Requests.Messages.UseItemGymMessage()
        return self
      }
      override public func clone() throws -> Pogoprotos.Networking.Requests.Messages.UseItemGymMessage.Builder {
        return try Pogoprotos.Networking.Requests.Messages.UseItemGymMessage.builderWithPrototype(builderResult)
      }
      override public func build() throws -> Pogoprotos.Networking.Requests.Messages.UseItemGymMessage {
           try checkInitialized()
           return buildPartial()
      }
      public func buildPartial() -> Pogoprotos.Networking.Requests.Messages.UseItemGymMessage {
        let returnMe:Pogoprotos.Networking.Requests.Messages.UseItemGymMessage = builderResult
        return returnMe
      }
      public func mergeFrom(other:Pogoprotos.Networking.Requests.Messages.UseItemGymMessage) throws -> Pogoprotos.Networking.Requests.Messages.UseItemGymMessage.Builder {
        if other == Pogoprotos.Networking.Requests.Messages.UseItemGymMessage() {
         return self
        }
        if other.hasItemId {
             itemId = other.itemId
        }
        if other.hasGymId {
             gymId = other.gymId
        }
        if other.hasPlayerLatitude {
             playerLatitude = other.playerLatitude
        }
        if other.hasPlayerLongitude {
             playerLongitude = other.playerLongitude
        }
        try mergeUnknownFields(other.unknownFields)
        return self
      }
      override public func mergeFromCodedInputStream(input:CodedInputStream) throws -> Pogoprotos.Networking.Requests.Messages.UseItemGymMessage.Builder {
           return try mergeFromCodedInputStream(input, extensionRegistry:ExtensionRegistry())
      }
      override public func mergeFromCodedInputStream(input:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.UseItemGymMessage.Builder {
        let unknownFieldsBuilder:UnknownFieldSet.Builder = try UnknownFieldSet.builderWithUnknownFields(self.unknownFields)
        while (true) {
          let protobufTag = try input.readTag()
          switch protobufTag {
          case 0: 
            self.unknownFields = try unknownFieldsBuilder.build()
            return self

          case 8:
            let valueIntitemId = try input.readEnum()
            if let enumsitemId = Pogoprotos.Inventory.Item.ItemId(rawValue:valueIntitemId){
                 itemId = enumsitemId
            } else {
                 try unknownFieldsBuilder.mergeVarintField(1, value:Int64(valueIntitemId))
            }

          case 18:
            gymId = try input.readString()

          case 25:
            playerLatitude = try input.readDouble()

          case 33:
            playerLongitude = try input.readDouble()

          default:
            if (!(try parseUnknownField(input,unknownFields:unknownFieldsBuilder, extensionRegistry:extensionRegistry, tag:protobufTag))) {
               unknownFields = try unknownFieldsBuilder.build()
               return self
            }
          }
        }
      }
      override class public func decodeToBuilder(jsonMap:Dictionary<String,AnyObject>) throws -> Pogoprotos.Networking.Requests.Messages.UseItemGymMessage.Builder {
        let resultDecodedBuilder = Pogoprotos.Networking.Requests.Messages.UseItemGymMessage.Builder()
        if let jsonValueItemId = jsonMap["itemId"] as? String {
          resultDecodedBuilder.itemId = try Pogoprotos.Inventory.Item.ItemId.fromString(jsonValueItemId)
        }
        if let jsonValueGymId = jsonMap["gymId"] as? String {
          resultDecodedBuilder.gymId = jsonValueGymId
        }
        if let jsonValuePlayerLatitude = jsonMap["playerLatitude"] as? NSNumber {
          resultDecodedBuilder.playerLatitude = jsonValuePlayerLatitude.doubleValue
        }
        if let jsonValuePlayerLongitude = jsonMap["playerLongitude"] as? NSNumber {
          resultDecodedBuilder.playerLongitude = jsonValuePlayerLongitude.doubleValue
        }
        return resultDecodedBuilder
      }
      override class public func fromJSONToBuilder(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.UseItemGymMessage.Builder {
        let jsonData = try NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions(rawValue: 0))
        guard let jsDataCast = jsonData as? Dictionary<String,AnyObject> else {
          throw ProtocolBuffersError.InvalidProtocolBuffer("Invalid JSON data")
        }
        return try Pogoprotos.Networking.Requests.Messages.UseItemGymMessage.Builder.decodeToBuilder(jsDataCast)
      }
    }

  }

  final public class UseItemPotionMessage : GeneratedMessage, GeneratedMessageProtocol {
    public private(set) var itemId:Pogoprotos.Inventory.Item.ItemId = Pogoprotos.Inventory.Item.ItemId.ItemUnknown
    public private(set) var hasItemId:Bool = false
    public private(set) var hasPokemonId:Bool = false
    public private(set) var pokemonId:UInt64 = UInt64(0)

    required public init() {
         super.init()
    }
    override public func isInitialized() -> Bool {
     return true
    }
    override public func writeToCodedOutputStream(output:CodedOutputStream) throws {
      if hasItemId {
        try output.writeEnum(1, value:itemId.rawValue)
      }
      if hasPokemonId {
        try output.writeFixed64(2, value:pokemonId)
      }
      try unknownFields.writeToCodedOutputStream(output)
    }
    override public func serializedSize() -> Int32 {
      var serialize_size:Int32 = memoizedSerializedSize
      if serialize_size != -1 {
       return serialize_size
      }

      serialize_size = 0
      if (hasItemId) {
        serialize_size += itemId.rawValue.computeEnumSize(1)
      }
      if hasPokemonId {
        serialize_size += pokemonId.computeFixed64Size(2)
      }
      serialize_size += unknownFields.serializedSize()
      memoizedSerializedSize = serialize_size
      return serialize_size
    }
    public class func parseArrayDelimitedFromInputStream(input:NSInputStream) throws -> Array<Pogoprotos.Networking.Requests.Messages.UseItemPotionMessage> {
      var mergedArray = Array<Pogoprotos.Networking.Requests.Messages.UseItemPotionMessage>()
      while let value = try parseFromDelimitedFromInputStream(input) {
        mergedArray += [value]
      }
      return mergedArray
    }
    public class func parseFromDelimitedFromInputStream(input:NSInputStream) throws -> Pogoprotos.Networking.Requests.Messages.UseItemPotionMessage? {
      return try Pogoprotos.Networking.Requests.Messages.UseItemPotionMessage.Builder().mergeDelimitedFromInputStream(input)?.build()
    }
    public class func parseFromData(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.UseItemPotionMessage {
      return try Pogoprotos.Networking.Requests.Messages.UseItemPotionMessage.Builder().mergeFromData(data, extensionRegistry:Pogoprotos.Networking.Requests.Messages.PogoprotosNetworkingRequestsMessagesRoot.sharedInstance.extensionRegistry).build()
    }
    public class func parseFromData(data:NSData, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.UseItemPotionMessage {
      return try Pogoprotos.Networking.Requests.Messages.UseItemPotionMessage.Builder().mergeFromData(data, extensionRegistry:extensionRegistry).build()
    }
    public class func parseFromInputStream(input:NSInputStream) throws -> Pogoprotos.Networking.Requests.Messages.UseItemPotionMessage {
      return try Pogoprotos.Networking.Requests.Messages.UseItemPotionMessage.Builder().mergeFromInputStream(input).build()
    }
    public class func parseFromInputStream(input:NSInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.UseItemPotionMessage {
      return try Pogoprotos.Networking.Requests.Messages.UseItemPotionMessage.Builder().mergeFromInputStream(input, extensionRegistry:extensionRegistry).build()
    }
    public class func parseFromCodedInputStream(input:CodedInputStream) throws -> Pogoprotos.Networking.Requests.Messages.UseItemPotionMessage {
      return try Pogoprotos.Networking.Requests.Messages.UseItemPotionMessage.Builder().mergeFromCodedInputStream(input).build()
    }
    public class func parseFromCodedInputStream(input:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.UseItemPotionMessage {
      return try Pogoprotos.Networking.Requests.Messages.UseItemPotionMessage.Builder().mergeFromCodedInputStream(input, extensionRegistry:extensionRegistry).build()
    }
    public class func getBuilder() -> Pogoprotos.Networking.Requests.Messages.UseItemPotionMessage.Builder {
      return Pogoprotos.Networking.Requests.Messages.UseItemPotionMessage.classBuilder() as! Pogoprotos.Networking.Requests.Messages.UseItemPotionMessage.Builder
    }
    public func getBuilder() -> Pogoprotos.Networking.Requests.Messages.UseItemPotionMessage.Builder {
      return classBuilder() as! Pogoprotos.Networking.Requests.Messages.UseItemPotionMessage.Builder
    }
    override public class func classBuilder() -> MessageBuilder {
      return Pogoprotos.Networking.Requests.Messages.UseItemPotionMessage.Builder()
    }
    override public func classBuilder() -> MessageBuilder {
      return Pogoprotos.Networking.Requests.Messages.UseItemPotionMessage.Builder()
    }
    public func toBuilder() throws -> Pogoprotos.Networking.Requests.Messages.UseItemPotionMessage.Builder {
      return try Pogoprotos.Networking.Requests.Messages.UseItemPotionMessage.builderWithPrototype(self)
    }
    public class func builderWithPrototype(prototype:Pogoprotos.Networking.Requests.Messages.UseItemPotionMessage) throws -> Pogoprotos.Networking.Requests.Messages.UseItemPotionMessage.Builder {
      return try Pogoprotos.Networking.Requests.Messages.UseItemPotionMessage.Builder().mergeFrom(prototype)
    }
    override public func encode() throws -> Dictionary<String,AnyObject> {
      guard isInitialized() else {
        throw ProtocolBuffersError.InvalidProtocolBuffer("Uninitialized Message")
      }

      var jsonMap:Dictionary<String,AnyObject> = Dictionary<String,AnyObject>()
      if hasItemId {
        jsonMap["itemId"] = itemId.toString()
      }
      if hasPokemonId {
        jsonMap["pokemonId"] = "\(pokemonId)"
      }
      return jsonMap
    }
    override class public func decode(jsonMap:Dictionary<String,AnyObject>) throws -> Pogoprotos.Networking.Requests.Messages.UseItemPotionMessage {
      return try Pogoprotos.Networking.Requests.Messages.UseItemPotionMessage.Builder.decodeToBuilder(jsonMap).build()
    }
    override class public func fromJSON(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.UseItemPotionMessage {
      return try Pogoprotos.Networking.Requests.Messages.UseItemPotionMessage.Builder.fromJSONToBuilder(data).build()
    }
    override public func getDescription(indent:String) throws -> String {
      var output = ""
      if (hasItemId) {
        output += "\(indent) itemId: \(itemId.description)\n"
      }
      if hasPokemonId {
        output += "\(indent) pokemonId: \(pokemonId) \n"
      }
      output += unknownFields.getDescription(indent)
      return output
    }
    override public var hashValue:Int {
        get {
            var hashCode:Int = 7
            if hasItemId {
               hashCode = (hashCode &* 31) &+ Int(itemId.rawValue)
            }
            if hasPokemonId {
               hashCode = (hashCode &* 31) &+ pokemonId.hashValue
            }
            hashCode = (hashCode &* 31) &+  unknownFields.hashValue
            return hashCode
        }
    }


    //Meta information declaration start

    override public class func className() -> String {
        return "Pogoprotos.Networking.Requests.Messages.UseItemPotionMessage"
    }
    override public func className() -> String {
        return "Pogoprotos.Networking.Requests.Messages.UseItemPotionMessage"
    }
    override public func classMetaType() -> GeneratedMessage.Type {
        return Pogoprotos.Networking.Requests.Messages.UseItemPotionMessage.self
    }
    //Meta information declaration end

    final public class Builder : GeneratedMessageBuilder {
      private var builderResult:Pogoprotos.Networking.Requests.Messages.UseItemPotionMessage = Pogoprotos.Networking.Requests.Messages.UseItemPotionMessage()
      public func getMessage() -> Pogoprotos.Networking.Requests.Messages.UseItemPotionMessage {
          return builderResult
      }

      required override public init () {
         super.init()
      }
        public var hasItemId:Bool{
            get {
                return builderResult.hasItemId
            }
        }
        public var itemId:Pogoprotos.Inventory.Item.ItemId {
            get {
                return builderResult.itemId
            }
            set (value) {
                builderResult.hasItemId = true
                builderResult.itemId = value
            }
        }
        public func setItemId(value:Pogoprotos.Inventory.Item.ItemId) -> Pogoprotos.Networking.Requests.Messages.UseItemPotionMessage.Builder {
          self.itemId = value
          return self
        }
        public func clearItemId() -> Pogoprotos.Networking.Requests.Messages.UseItemPotionMessage.Builder {
           builderResult.hasItemId = false
           builderResult.itemId = .ItemUnknown
           return self
        }
      public var hasPokemonId:Bool {
           get {
                return builderResult.hasPokemonId
           }
      }
      public var pokemonId:UInt64 {
           get {
                return builderResult.pokemonId
           }
           set (value) {
               builderResult.hasPokemonId = true
               builderResult.pokemonId = value
           }
      }
      public func setPokemonId(value:UInt64) -> Pogoprotos.Networking.Requests.Messages.UseItemPotionMessage.Builder {
        self.pokemonId = value
        return self
      }
      public func clearPokemonId() -> Pogoprotos.Networking.Requests.Messages.UseItemPotionMessage.Builder{
           builderResult.hasPokemonId = false
           builderResult.pokemonId = UInt64(0)
           return self
      }
      override public var internalGetResult:GeneratedMessage {
           get {
              return builderResult
           }
      }
      override public func clear() -> Pogoprotos.Networking.Requests.Messages.UseItemPotionMessage.Builder {
        builderResult = Pogoprotos.Networking.Requests.Messages.UseItemPotionMessage()
        return self
      }
      override public func clone() throws -> Pogoprotos.Networking.Requests.Messages.UseItemPotionMessage.Builder {
        return try Pogoprotos.Networking.Requests.Messages.UseItemPotionMessage.builderWithPrototype(builderResult)
      }
      override public func build() throws -> Pogoprotos.Networking.Requests.Messages.UseItemPotionMessage {
           try checkInitialized()
           return buildPartial()
      }
      public func buildPartial() -> Pogoprotos.Networking.Requests.Messages.UseItemPotionMessage {
        let returnMe:Pogoprotos.Networking.Requests.Messages.UseItemPotionMessage = builderResult
        return returnMe
      }
      public func mergeFrom(other:Pogoprotos.Networking.Requests.Messages.UseItemPotionMessage) throws -> Pogoprotos.Networking.Requests.Messages.UseItemPotionMessage.Builder {
        if other == Pogoprotos.Networking.Requests.Messages.UseItemPotionMessage() {
         return self
        }
        if other.hasItemId {
             itemId = other.itemId
        }
        if other.hasPokemonId {
             pokemonId = other.pokemonId
        }
        try mergeUnknownFields(other.unknownFields)
        return self
      }
      override public func mergeFromCodedInputStream(input:CodedInputStream) throws -> Pogoprotos.Networking.Requests.Messages.UseItemPotionMessage.Builder {
           return try mergeFromCodedInputStream(input, extensionRegistry:ExtensionRegistry())
      }
      override public func mergeFromCodedInputStream(input:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.UseItemPotionMessage.Builder {
        let unknownFieldsBuilder:UnknownFieldSet.Builder = try UnknownFieldSet.builderWithUnknownFields(self.unknownFields)
        while (true) {
          let protobufTag = try input.readTag()
          switch protobufTag {
          case 0: 
            self.unknownFields = try unknownFieldsBuilder.build()
            return self

          case 8:
            let valueIntitemId = try input.readEnum()
            if let enumsitemId = Pogoprotos.Inventory.Item.ItemId(rawValue:valueIntitemId){
                 itemId = enumsitemId
            } else {
                 try unknownFieldsBuilder.mergeVarintField(1, value:Int64(valueIntitemId))
            }

          case 17:
            pokemonId = try input.readFixed64()

          default:
            if (!(try parseUnknownField(input,unknownFields:unknownFieldsBuilder, extensionRegistry:extensionRegistry, tag:protobufTag))) {
               unknownFields = try unknownFieldsBuilder.build()
               return self
            }
          }
        }
      }
      override class public func decodeToBuilder(jsonMap:Dictionary<String,AnyObject>) throws -> Pogoprotos.Networking.Requests.Messages.UseItemPotionMessage.Builder {
        let resultDecodedBuilder = Pogoprotos.Networking.Requests.Messages.UseItemPotionMessage.Builder()
        if let jsonValueItemId = jsonMap["itemId"] as? String {
          resultDecodedBuilder.itemId = try Pogoprotos.Inventory.Item.ItemId.fromString(jsonValueItemId)
        }
        if let jsonValuePokemonId = jsonMap["pokemonId"] as? String {
          resultDecodedBuilder.pokemonId = UInt64(jsonValuePokemonId)!
        }
        return resultDecodedBuilder
      }
      override class public func fromJSONToBuilder(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.UseItemPotionMessage.Builder {
        let jsonData = try NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions(rawValue: 0))
        guard let jsDataCast = jsonData as? Dictionary<String,AnyObject> else {
          throw ProtocolBuffersError.InvalidProtocolBuffer("Invalid JSON data")
        }
        return try Pogoprotos.Networking.Requests.Messages.UseItemPotionMessage.Builder.decodeToBuilder(jsDataCast)
      }
    }

  }

  final public class UseItemReviveMessage : GeneratedMessage, GeneratedMessageProtocol {
    public private(set) var itemId:Pogoprotos.Inventory.Item.ItemId = Pogoprotos.Inventory.Item.ItemId.ItemUnknown
    public private(set) var hasItemId:Bool = false
    public private(set) var hasPokemonId:Bool = false
    public private(set) var pokemonId:UInt64 = UInt64(0)

    required public init() {
         super.init()
    }
    override public func isInitialized() -> Bool {
     return true
    }
    override public func writeToCodedOutputStream(output:CodedOutputStream) throws {
      if hasItemId {
        try output.writeEnum(1, value:itemId.rawValue)
      }
      if hasPokemonId {
        try output.writeFixed64(2, value:pokemonId)
      }
      try unknownFields.writeToCodedOutputStream(output)
    }
    override public func serializedSize() -> Int32 {
      var serialize_size:Int32 = memoizedSerializedSize
      if serialize_size != -1 {
       return serialize_size
      }

      serialize_size = 0
      if (hasItemId) {
        serialize_size += itemId.rawValue.computeEnumSize(1)
      }
      if hasPokemonId {
        serialize_size += pokemonId.computeFixed64Size(2)
      }
      serialize_size += unknownFields.serializedSize()
      memoizedSerializedSize = serialize_size
      return serialize_size
    }
    public class func parseArrayDelimitedFromInputStream(input:NSInputStream) throws -> Array<Pogoprotos.Networking.Requests.Messages.UseItemReviveMessage> {
      var mergedArray = Array<Pogoprotos.Networking.Requests.Messages.UseItemReviveMessage>()
      while let value = try parseFromDelimitedFromInputStream(input) {
        mergedArray += [value]
      }
      return mergedArray
    }
    public class func parseFromDelimitedFromInputStream(input:NSInputStream) throws -> Pogoprotos.Networking.Requests.Messages.UseItemReviveMessage? {
      return try Pogoprotos.Networking.Requests.Messages.UseItemReviveMessage.Builder().mergeDelimitedFromInputStream(input)?.build()
    }
    public class func parseFromData(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.UseItemReviveMessage {
      return try Pogoprotos.Networking.Requests.Messages.UseItemReviveMessage.Builder().mergeFromData(data, extensionRegistry:Pogoprotos.Networking.Requests.Messages.PogoprotosNetworkingRequestsMessagesRoot.sharedInstance.extensionRegistry).build()
    }
    public class func parseFromData(data:NSData, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.UseItemReviveMessage {
      return try Pogoprotos.Networking.Requests.Messages.UseItemReviveMessage.Builder().mergeFromData(data, extensionRegistry:extensionRegistry).build()
    }
    public class func parseFromInputStream(input:NSInputStream) throws -> Pogoprotos.Networking.Requests.Messages.UseItemReviveMessage {
      return try Pogoprotos.Networking.Requests.Messages.UseItemReviveMessage.Builder().mergeFromInputStream(input).build()
    }
    public class func parseFromInputStream(input:NSInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.UseItemReviveMessage {
      return try Pogoprotos.Networking.Requests.Messages.UseItemReviveMessage.Builder().mergeFromInputStream(input, extensionRegistry:extensionRegistry).build()
    }
    public class func parseFromCodedInputStream(input:CodedInputStream) throws -> Pogoprotos.Networking.Requests.Messages.UseItemReviveMessage {
      return try Pogoprotos.Networking.Requests.Messages.UseItemReviveMessage.Builder().mergeFromCodedInputStream(input).build()
    }
    public class func parseFromCodedInputStream(input:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.UseItemReviveMessage {
      return try Pogoprotos.Networking.Requests.Messages.UseItemReviveMessage.Builder().mergeFromCodedInputStream(input, extensionRegistry:extensionRegistry).build()
    }
    public class func getBuilder() -> Pogoprotos.Networking.Requests.Messages.UseItemReviveMessage.Builder {
      return Pogoprotos.Networking.Requests.Messages.UseItemReviveMessage.classBuilder() as! Pogoprotos.Networking.Requests.Messages.UseItemReviveMessage.Builder
    }
    public func getBuilder() -> Pogoprotos.Networking.Requests.Messages.UseItemReviveMessage.Builder {
      return classBuilder() as! Pogoprotos.Networking.Requests.Messages.UseItemReviveMessage.Builder
    }
    override public class func classBuilder() -> MessageBuilder {
      return Pogoprotos.Networking.Requests.Messages.UseItemReviveMessage.Builder()
    }
    override public func classBuilder() -> MessageBuilder {
      return Pogoprotos.Networking.Requests.Messages.UseItemReviveMessage.Builder()
    }
    public func toBuilder() throws -> Pogoprotos.Networking.Requests.Messages.UseItemReviveMessage.Builder {
      return try Pogoprotos.Networking.Requests.Messages.UseItemReviveMessage.builderWithPrototype(self)
    }
    public class func builderWithPrototype(prototype:Pogoprotos.Networking.Requests.Messages.UseItemReviveMessage) throws -> Pogoprotos.Networking.Requests.Messages.UseItemReviveMessage.Builder {
      return try Pogoprotos.Networking.Requests.Messages.UseItemReviveMessage.Builder().mergeFrom(prototype)
    }
    override public func encode() throws -> Dictionary<String,AnyObject> {
      guard isInitialized() else {
        throw ProtocolBuffersError.InvalidProtocolBuffer("Uninitialized Message")
      }

      var jsonMap:Dictionary<String,AnyObject> = Dictionary<String,AnyObject>()
      if hasItemId {
        jsonMap["itemId"] = itemId.toString()
      }
      if hasPokemonId {
        jsonMap["pokemonId"] = "\(pokemonId)"
      }
      return jsonMap
    }
    override class public func decode(jsonMap:Dictionary<String,AnyObject>) throws -> Pogoprotos.Networking.Requests.Messages.UseItemReviveMessage {
      return try Pogoprotos.Networking.Requests.Messages.UseItemReviveMessage.Builder.decodeToBuilder(jsonMap).build()
    }
    override class public func fromJSON(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.UseItemReviveMessage {
      return try Pogoprotos.Networking.Requests.Messages.UseItemReviveMessage.Builder.fromJSONToBuilder(data).build()
    }
    override public func getDescription(indent:String) throws -> String {
      var output = ""
      if (hasItemId) {
        output += "\(indent) itemId: \(itemId.description)\n"
      }
      if hasPokemonId {
        output += "\(indent) pokemonId: \(pokemonId) \n"
      }
      output += unknownFields.getDescription(indent)
      return output
    }
    override public var hashValue:Int {
        get {
            var hashCode:Int = 7
            if hasItemId {
               hashCode = (hashCode &* 31) &+ Int(itemId.rawValue)
            }
            if hasPokemonId {
               hashCode = (hashCode &* 31) &+ pokemonId.hashValue
            }
            hashCode = (hashCode &* 31) &+  unknownFields.hashValue
            return hashCode
        }
    }


    //Meta information declaration start

    override public class func className() -> String {
        return "Pogoprotos.Networking.Requests.Messages.UseItemReviveMessage"
    }
    override public func className() -> String {
        return "Pogoprotos.Networking.Requests.Messages.UseItemReviveMessage"
    }
    override public func classMetaType() -> GeneratedMessage.Type {
        return Pogoprotos.Networking.Requests.Messages.UseItemReviveMessage.self
    }
    //Meta information declaration end

    final public class Builder : GeneratedMessageBuilder {
      private var builderResult:Pogoprotos.Networking.Requests.Messages.UseItemReviveMessage = Pogoprotos.Networking.Requests.Messages.UseItemReviveMessage()
      public func getMessage() -> Pogoprotos.Networking.Requests.Messages.UseItemReviveMessage {
          return builderResult
      }

      required override public init () {
         super.init()
      }
        public var hasItemId:Bool{
            get {
                return builderResult.hasItemId
            }
        }
        public var itemId:Pogoprotos.Inventory.Item.ItemId {
            get {
                return builderResult.itemId
            }
            set (value) {
                builderResult.hasItemId = true
                builderResult.itemId = value
            }
        }
        public func setItemId(value:Pogoprotos.Inventory.Item.ItemId) -> Pogoprotos.Networking.Requests.Messages.UseItemReviveMessage.Builder {
          self.itemId = value
          return self
        }
        public func clearItemId() -> Pogoprotos.Networking.Requests.Messages.UseItemReviveMessage.Builder {
           builderResult.hasItemId = false
           builderResult.itemId = .ItemUnknown
           return self
        }
      public var hasPokemonId:Bool {
           get {
                return builderResult.hasPokemonId
           }
      }
      public var pokemonId:UInt64 {
           get {
                return builderResult.pokemonId
           }
           set (value) {
               builderResult.hasPokemonId = true
               builderResult.pokemonId = value
           }
      }
      public func setPokemonId(value:UInt64) -> Pogoprotos.Networking.Requests.Messages.UseItemReviveMessage.Builder {
        self.pokemonId = value
        return self
      }
      public func clearPokemonId() -> Pogoprotos.Networking.Requests.Messages.UseItemReviveMessage.Builder{
           builderResult.hasPokemonId = false
           builderResult.pokemonId = UInt64(0)
           return self
      }
      override public var internalGetResult:GeneratedMessage {
           get {
              return builderResult
           }
      }
      override public func clear() -> Pogoprotos.Networking.Requests.Messages.UseItemReviveMessage.Builder {
        builderResult = Pogoprotos.Networking.Requests.Messages.UseItemReviveMessage()
        return self
      }
      override public func clone() throws -> Pogoprotos.Networking.Requests.Messages.UseItemReviveMessage.Builder {
        return try Pogoprotos.Networking.Requests.Messages.UseItemReviveMessage.builderWithPrototype(builderResult)
      }
      override public func build() throws -> Pogoprotos.Networking.Requests.Messages.UseItemReviveMessage {
           try checkInitialized()
           return buildPartial()
      }
      public func buildPartial() -> Pogoprotos.Networking.Requests.Messages.UseItemReviveMessage {
        let returnMe:Pogoprotos.Networking.Requests.Messages.UseItemReviveMessage = builderResult
        return returnMe
      }
      public func mergeFrom(other:Pogoprotos.Networking.Requests.Messages.UseItemReviveMessage) throws -> Pogoprotos.Networking.Requests.Messages.UseItemReviveMessage.Builder {
        if other == Pogoprotos.Networking.Requests.Messages.UseItemReviveMessage() {
         return self
        }
        if other.hasItemId {
             itemId = other.itemId
        }
        if other.hasPokemonId {
             pokemonId = other.pokemonId
        }
        try mergeUnknownFields(other.unknownFields)
        return self
      }
      override public func mergeFromCodedInputStream(input:CodedInputStream) throws -> Pogoprotos.Networking.Requests.Messages.UseItemReviveMessage.Builder {
           return try mergeFromCodedInputStream(input, extensionRegistry:ExtensionRegistry())
      }
      override public func mergeFromCodedInputStream(input:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.UseItemReviveMessage.Builder {
        let unknownFieldsBuilder:UnknownFieldSet.Builder = try UnknownFieldSet.builderWithUnknownFields(self.unknownFields)
        while (true) {
          let protobufTag = try input.readTag()
          switch protobufTag {
          case 0: 
            self.unknownFields = try unknownFieldsBuilder.build()
            return self

          case 8:
            let valueIntitemId = try input.readEnum()
            if let enumsitemId = Pogoprotos.Inventory.Item.ItemId(rawValue:valueIntitemId){
                 itemId = enumsitemId
            } else {
                 try unknownFieldsBuilder.mergeVarintField(1, value:Int64(valueIntitemId))
            }

          case 17:
            pokemonId = try input.readFixed64()

          default:
            if (!(try parseUnknownField(input,unknownFields:unknownFieldsBuilder, extensionRegistry:extensionRegistry, tag:protobufTag))) {
               unknownFields = try unknownFieldsBuilder.build()
               return self
            }
          }
        }
      }
      override class public func decodeToBuilder(jsonMap:Dictionary<String,AnyObject>) throws -> Pogoprotos.Networking.Requests.Messages.UseItemReviveMessage.Builder {
        let resultDecodedBuilder = Pogoprotos.Networking.Requests.Messages.UseItemReviveMessage.Builder()
        if let jsonValueItemId = jsonMap["itemId"] as? String {
          resultDecodedBuilder.itemId = try Pogoprotos.Inventory.Item.ItemId.fromString(jsonValueItemId)
        }
        if let jsonValuePokemonId = jsonMap["pokemonId"] as? String {
          resultDecodedBuilder.pokemonId = UInt64(jsonValuePokemonId)!
        }
        return resultDecodedBuilder
      }
      override class public func fromJSONToBuilder(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.UseItemReviveMessage.Builder {
        let jsonData = try NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions(rawValue: 0))
        guard let jsDataCast = jsonData as? Dictionary<String,AnyObject> else {
          throw ProtocolBuffersError.InvalidProtocolBuffer("Invalid JSON data")
        }
        return try Pogoprotos.Networking.Requests.Messages.UseItemReviveMessage.Builder.decodeToBuilder(jsDataCast)
      }
    }

  }

  final public class UseItemXpBoostMessage : GeneratedMessage, GeneratedMessageProtocol {
    public private(set) var itemId:Pogoprotos.Inventory.Item.ItemId = Pogoprotos.Inventory.Item.ItemId.ItemUnknown
    public private(set) var hasItemId:Bool = false
    required public init() {
         super.init()
    }
    override public func isInitialized() -> Bool {
     return true
    }
    override public func writeToCodedOutputStream(output:CodedOutputStream) throws {
      if hasItemId {
        try output.writeEnum(1, value:itemId.rawValue)
      }
      try unknownFields.writeToCodedOutputStream(output)
    }
    override public func serializedSize() -> Int32 {
      var serialize_size:Int32 = memoizedSerializedSize
      if serialize_size != -1 {
       return serialize_size
      }

      serialize_size = 0
      if (hasItemId) {
        serialize_size += itemId.rawValue.computeEnumSize(1)
      }
      serialize_size += unknownFields.serializedSize()
      memoizedSerializedSize = serialize_size
      return serialize_size
    }
    public class func parseArrayDelimitedFromInputStream(input:NSInputStream) throws -> Array<Pogoprotos.Networking.Requests.Messages.UseItemXpBoostMessage> {
      var mergedArray = Array<Pogoprotos.Networking.Requests.Messages.UseItemXpBoostMessage>()
      while let value = try parseFromDelimitedFromInputStream(input) {
        mergedArray += [value]
      }
      return mergedArray
    }
    public class func parseFromDelimitedFromInputStream(input:NSInputStream) throws -> Pogoprotos.Networking.Requests.Messages.UseItemXpBoostMessage? {
      return try Pogoprotos.Networking.Requests.Messages.UseItemXpBoostMessage.Builder().mergeDelimitedFromInputStream(input)?.build()
    }
    public class func parseFromData(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.UseItemXpBoostMessage {
      return try Pogoprotos.Networking.Requests.Messages.UseItemXpBoostMessage.Builder().mergeFromData(data, extensionRegistry:Pogoprotos.Networking.Requests.Messages.PogoprotosNetworkingRequestsMessagesRoot.sharedInstance.extensionRegistry).build()
    }
    public class func parseFromData(data:NSData, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.UseItemXpBoostMessage {
      return try Pogoprotos.Networking.Requests.Messages.UseItemXpBoostMessage.Builder().mergeFromData(data, extensionRegistry:extensionRegistry).build()
    }
    public class func parseFromInputStream(input:NSInputStream) throws -> Pogoprotos.Networking.Requests.Messages.UseItemXpBoostMessage {
      return try Pogoprotos.Networking.Requests.Messages.UseItemXpBoostMessage.Builder().mergeFromInputStream(input).build()
    }
    public class func parseFromInputStream(input:NSInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.UseItemXpBoostMessage {
      return try Pogoprotos.Networking.Requests.Messages.UseItemXpBoostMessage.Builder().mergeFromInputStream(input, extensionRegistry:extensionRegistry).build()
    }
    public class func parseFromCodedInputStream(input:CodedInputStream) throws -> Pogoprotos.Networking.Requests.Messages.UseItemXpBoostMessage {
      return try Pogoprotos.Networking.Requests.Messages.UseItemXpBoostMessage.Builder().mergeFromCodedInputStream(input).build()
    }
    public class func parseFromCodedInputStream(input:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.UseItemXpBoostMessage {
      return try Pogoprotos.Networking.Requests.Messages.UseItemXpBoostMessage.Builder().mergeFromCodedInputStream(input, extensionRegistry:extensionRegistry).build()
    }
    public class func getBuilder() -> Pogoprotos.Networking.Requests.Messages.UseItemXpBoostMessage.Builder {
      return Pogoprotos.Networking.Requests.Messages.UseItemXpBoostMessage.classBuilder() as! Pogoprotos.Networking.Requests.Messages.UseItemXpBoostMessage.Builder
    }
    public func getBuilder() -> Pogoprotos.Networking.Requests.Messages.UseItemXpBoostMessage.Builder {
      return classBuilder() as! Pogoprotos.Networking.Requests.Messages.UseItemXpBoostMessage.Builder
    }
    override public class func classBuilder() -> MessageBuilder {
      return Pogoprotos.Networking.Requests.Messages.UseItemXpBoostMessage.Builder()
    }
    override public func classBuilder() -> MessageBuilder {
      return Pogoprotos.Networking.Requests.Messages.UseItemXpBoostMessage.Builder()
    }
    public func toBuilder() throws -> Pogoprotos.Networking.Requests.Messages.UseItemXpBoostMessage.Builder {
      return try Pogoprotos.Networking.Requests.Messages.UseItemXpBoostMessage.builderWithPrototype(self)
    }
    public class func builderWithPrototype(prototype:Pogoprotos.Networking.Requests.Messages.UseItemXpBoostMessage) throws -> Pogoprotos.Networking.Requests.Messages.UseItemXpBoostMessage.Builder {
      return try Pogoprotos.Networking.Requests.Messages.UseItemXpBoostMessage.Builder().mergeFrom(prototype)
    }
    override public func encode() throws -> Dictionary<String,AnyObject> {
      guard isInitialized() else {
        throw ProtocolBuffersError.InvalidProtocolBuffer("Uninitialized Message")
      }

      var jsonMap:Dictionary<String,AnyObject> = Dictionary<String,AnyObject>()
      if hasItemId {
        jsonMap["itemId"] = itemId.toString()
      }
      return jsonMap
    }
    override class public func decode(jsonMap:Dictionary<String,AnyObject>) throws -> Pogoprotos.Networking.Requests.Messages.UseItemXpBoostMessage {
      return try Pogoprotos.Networking.Requests.Messages.UseItemXpBoostMessage.Builder.decodeToBuilder(jsonMap).build()
    }
    override class public func fromJSON(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.UseItemXpBoostMessage {
      return try Pogoprotos.Networking.Requests.Messages.UseItemXpBoostMessage.Builder.fromJSONToBuilder(data).build()
    }
    override public func getDescription(indent:String) throws -> String {
      var output = ""
      if (hasItemId) {
        output += "\(indent) itemId: \(itemId.description)\n"
      }
      output += unknownFields.getDescription(indent)
      return output
    }
    override public var hashValue:Int {
        get {
            var hashCode:Int = 7
            if hasItemId {
               hashCode = (hashCode &* 31) &+ Int(itemId.rawValue)
            }
            hashCode = (hashCode &* 31) &+  unknownFields.hashValue
            return hashCode
        }
    }


    //Meta information declaration start

    override public class func className() -> String {
        return "Pogoprotos.Networking.Requests.Messages.UseItemXpBoostMessage"
    }
    override public func className() -> String {
        return "Pogoprotos.Networking.Requests.Messages.UseItemXpBoostMessage"
    }
    override public func classMetaType() -> GeneratedMessage.Type {
        return Pogoprotos.Networking.Requests.Messages.UseItemXpBoostMessage.self
    }
    //Meta information declaration end

    final public class Builder : GeneratedMessageBuilder {
      private var builderResult:Pogoprotos.Networking.Requests.Messages.UseItemXpBoostMessage = Pogoprotos.Networking.Requests.Messages.UseItemXpBoostMessage()
      public func getMessage() -> Pogoprotos.Networking.Requests.Messages.UseItemXpBoostMessage {
          return builderResult
      }

      required override public init () {
         super.init()
      }
        public var hasItemId:Bool{
            get {
                return builderResult.hasItemId
            }
        }
        public var itemId:Pogoprotos.Inventory.Item.ItemId {
            get {
                return builderResult.itemId
            }
            set (value) {
                builderResult.hasItemId = true
                builderResult.itemId = value
            }
        }
        public func setItemId(value:Pogoprotos.Inventory.Item.ItemId) -> Pogoprotos.Networking.Requests.Messages.UseItemXpBoostMessage.Builder {
          self.itemId = value
          return self
        }
        public func clearItemId() -> Pogoprotos.Networking.Requests.Messages.UseItemXpBoostMessage.Builder {
           builderResult.hasItemId = false
           builderResult.itemId = .ItemUnknown
           return self
        }
      override public var internalGetResult:GeneratedMessage {
           get {
              return builderResult
           }
      }
      override public func clear() -> Pogoprotos.Networking.Requests.Messages.UseItemXpBoostMessage.Builder {
        builderResult = Pogoprotos.Networking.Requests.Messages.UseItemXpBoostMessage()
        return self
      }
      override public func clone() throws -> Pogoprotos.Networking.Requests.Messages.UseItemXpBoostMessage.Builder {
        return try Pogoprotos.Networking.Requests.Messages.UseItemXpBoostMessage.builderWithPrototype(builderResult)
      }
      override public func build() throws -> Pogoprotos.Networking.Requests.Messages.UseItemXpBoostMessage {
           try checkInitialized()
           return buildPartial()
      }
      public func buildPartial() -> Pogoprotos.Networking.Requests.Messages.UseItemXpBoostMessage {
        let returnMe:Pogoprotos.Networking.Requests.Messages.UseItemXpBoostMessage = builderResult
        return returnMe
      }
      public func mergeFrom(other:Pogoprotos.Networking.Requests.Messages.UseItemXpBoostMessage) throws -> Pogoprotos.Networking.Requests.Messages.UseItemXpBoostMessage.Builder {
        if other == Pogoprotos.Networking.Requests.Messages.UseItemXpBoostMessage() {
         return self
        }
        if other.hasItemId {
             itemId = other.itemId
        }
        try mergeUnknownFields(other.unknownFields)
        return self
      }
      override public func mergeFromCodedInputStream(input:CodedInputStream) throws -> Pogoprotos.Networking.Requests.Messages.UseItemXpBoostMessage.Builder {
           return try mergeFromCodedInputStream(input, extensionRegistry:ExtensionRegistry())
      }
      override public func mergeFromCodedInputStream(input:CodedInputStream, extensionRegistry:ExtensionRegistry) throws -> Pogoprotos.Networking.Requests.Messages.UseItemXpBoostMessage.Builder {
        let unknownFieldsBuilder:UnknownFieldSet.Builder = try UnknownFieldSet.builderWithUnknownFields(self.unknownFields)
        while (true) {
          let protobufTag = try input.readTag()
          switch protobufTag {
          case 0: 
            self.unknownFields = try unknownFieldsBuilder.build()
            return self

          case 8:
            let valueIntitemId = try input.readEnum()
            if let enumsitemId = Pogoprotos.Inventory.Item.ItemId(rawValue:valueIntitemId){
                 itemId = enumsitemId
            } else {
                 try unknownFieldsBuilder.mergeVarintField(1, value:Int64(valueIntitemId))
            }

          default:
            if (!(try parseUnknownField(input,unknownFields:unknownFieldsBuilder, extensionRegistry:extensionRegistry, tag:protobufTag))) {
               unknownFields = try unknownFieldsBuilder.build()
               return self
            }
          }
        }
      }
      override class public func decodeToBuilder(jsonMap:Dictionary<String,AnyObject>) throws -> Pogoprotos.Networking.Requests.Messages.UseItemXpBoostMessage.Builder {
        let resultDecodedBuilder = Pogoprotos.Networking.Requests.Messages.UseItemXpBoostMessage.Builder()
        if let jsonValueItemId = jsonMap["itemId"] as? String {
          resultDecodedBuilder.itemId = try Pogoprotos.Inventory.Item.ItemId.fromString(jsonValueItemId)
        }
        return resultDecodedBuilder
      }
      override class public func fromJSONToBuilder(data:NSData) throws -> Pogoprotos.Networking.Requests.Messages.UseItemXpBoostMessage.Builder {
        let jsonData = try NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions(rawValue: 0))
        guard let jsDataCast = jsonData as? Dictionary<String,AnyObject> else {
          throw ProtocolBuffersError.InvalidProtocolBuffer("Invalid JSON data")
        }
        return try Pogoprotos.Networking.Requests.Messages.UseItemXpBoostMessage.Builder.decodeToBuilder(jsDataCast)
      }
    }

  }

}

// @@protoc_insertion_point(global_scope)
